问下result = result + int(ip_list[i]) * 256 ** (3 - i)这句怎么理解?
# transfer ip to intdef ip2long(ip):
ip_list = ip.split('.')
result = 0
for i in range(4):# 0,1,2,3
result = result + int(ip_list) * 256 ** (3 - i)
return result
这里的result = result + int(ip_list) * 256 ** (3 - i)怎么理解? 你打印一下看看呗 qiuyouzhi 发表于 2020-4-9 17:01
你打印一下看看呗
我就是不理解int(ip_list) * 256 ** (3 - i)这里
题目是这样的
如 10.3.9.12 转换规则为:
10 00001010
3 00000011
9 00001001
12 00001100
再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
本帖最后由 wp231957 于 2020-4-9 18:35 编辑
tifa2018 发表于 2020-4-9 17:10
我就是不理解这里
题目是这样的
挺好玩的,你自己看一下:
00000192 00000000 00000000 00000000=11000000 00000000 00000000 00000000=1*2^31+1*2^30=3221225472
00000000 00000168 00000000 00000000=00000000 10101000 00000000 00000000=1*2^23+1*2^21+1*2^19=11010048
00000000 00000000 00000001 00000000=00000000 00000000 00000001 00000000=1*2^8=256
00000000 00000000 00000000 00000001=00000000 00000000 00000000 00000001=1
3221225472+11010048+256+1=3,232,235,777(192.168.1.1) 我觉得吧,result就相当于个变量,先有个初值为0,然后result= ...就得到个新值,再继续执行, ... =result...这个result就变成了上一次得到的那个值,然后result=....又得到了个新值,就这样循环,直到for把0,1,2,3都遍历完跳出来
哈哈哈哈我也是小白,一点拙见
页:
[1]