发布网友 发布时间:2022-04-24 03:32
共4个回答
懂视网 时间:2022-04-19 00:46
ip、数字互转# ip ==> 数字 >>> ip2num = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])]) >>> ip2num('192.168.0.1')
3232235521
# 数字 ==> ip # 数字范围[0, 255^4] >>> num2ip = lambda x: '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)]) >>> num2ip(3232235521)
'192.168.0.1'
热心网友 时间:2022-04-18 21:54
每个IP有4组8位二进制组成,8位二进制从左边算起的第1位是2的7次方=128;第2位是2的6次方=64;第3位是2的5次方=32;第4位是2的4次方=16;第5位是2的3次方=8;第6位是2的2次方=4;第7位是2的1次方=2;第8位是2的0次方=1。
以11000000.10101000.01010000.01000110为例来说明:
11000000=128*1+64*1=192;
10101000=128*1+32*1+8*1=168;
01010000=64*1+16*1=80;
01000110=64*1+4*1+2*1=70;
其他二进位部分是0的可以忽略,最后可以得出此IP地址的十进制为192.168.80.70。
扩展资料:
十进制基于位进制和十进位两条原则,即所有的数字都用10个基本的符号表示,满十进一,同时同一个符号在不同位置上所表示的数值不同,符号的位置非常重要。基本符号是0到9十个数字。
要表示这十个数的10倍,就将这些数字左移一位,用0补上空位,即10,20,30,90;要表示这十个数的10倍,就继续左移数字的位置,即100,200,300,...。要表示一个数的1/10,就右移这个数的位置,需要时就0补上空位:1/10位0.1,1/100为0.01,1/1000为0.001。
参考资料来源:百度百科-十进制
热心网友 时间:2022-04-18 23:12
比如说168转化为二进制的话用除二取余法热心网友 时间:2022-04-19 00:47
每个IP有4组8位二进制组成,8位二进制从左边算起的第1位是2的7次方=128;第2位是2的6次方=64;第3位是2的5次方=32;第4位是2的4次方=16;第5位是2的3次方=8;第6位是2的2次方=4;第7位是2的1次方=2;第8位是2的0次方=1。