发布网友 发布时间:2022-04-21 23:50
共3个回答
热心网友 时间:2023-07-02 03:20
分别对每组十进制数进行二进制转换即可。
点分十进制只是ip地址的一种表示方式,其中的点并非小数点,点只是用来分隔每一组数字的。所以只需要把每一组数字进行二进制转换即可。由于ipv4中的ip地址由四个字节来表示,每个字节由一个点隔开,所以相对应的每一组二进制数有8位。
例如192.168.110.1转换成二进制,就是将192,168,110,1分别转换成二进制即可,对应的二进制ip地址为11000000 10101000 01101110 00000001。
扩展资料
十进制整数转换为二进制整数采用"除2取余"法。
用十进制整数除以2,可以得到一个商和余数;再用商除以2,又会得到一个商和余数,如此进行,直到商为零时为止。然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
参考资料来源:百度百科-点分十进制
热心网友 时间:2023-07-02 03:20
四段,每段0到255,8位二进制,0就是00000000,255就是11111111。
8位二进制最高位128,接着是,接着32,接着是16,一直到最后一位是2的0次方,也就是1。
0到255的任意一个数要化成8位二进制,只要找出最大的包含的位,这个位上置1,减去这个位后的数再同理找最大包含的位。
比如100,它包含的最大位是,那么128位置0,位置1,减去后剩下36,36包含32,所以32的位置1,剩下4,所以16和8的位置0,4包含4,所以4的位置1,剩下已经是0了,2和1的位置0。
所以结果就是01100100
这种方法对IP地址的转换速度提高很大,前提是8个2的幂次方位你要熟练,当然有些小技巧是要自己总结的,比如某位的后面全是1,前面全是0,那么这个数就是这个位的值减去1。再比如有7位都是1,只有1位上是0,那么这个数就是255减去0位的值,等等等等小技巧是在熟练的前提下。
常规的十进制转二进制是除二取余数,这个百度一下就很多。
热心网友 时间:2023-07-02 03:20
要求的程序如下:
#include <stdio.h>
void ff(int n,int k)
{int i;
if(k>1)ff(n>>1,k-1);
printf("%d",n%2);
if(k==8)printf(" ");
}
int main()
{int a,b,c,d;
scanf("%d.%d.%d.%d",&a,&b,&c,&d);
ff(a,8); ff(b,8); ff(c,8); ff(d,8);
printf("\n");
return 0;
}