题解 | #整数与IP地址间的转换#
十进制转二进制:bin(int(i))[2:].zfill(8)
1.将整数转换为二进制表示,使用bin()
函数。例如,bin(10)
将返回字符串'0b1010'
,其中'0b'表示二进制的前缀。
2. 使用切片操作[2:]
,去除二进制字符串中的前缀'0b'
,只保留二进制数值部分。
3. 使用zfill(8)
函数,将二进制字符串填充到8位,如果不足8位则在左侧填充0。
二进制转十进制:int('二进制数字',2)
ip = input()
intip = input()
def trans_ip_int(ip, type):
if type == 1:
binary = ''
ip = ip.split('.')
for i in ip:
binary += bin(int(i))[2:].zfill(8)
return int(binary, 2)
if type == 2:
binary = bin(int(ip))[2:].zfill(32)
ip = []
for i in range(0, 32, 8):
ip.append(str(int(binary[i:i+8], 2)))
return '.'.join(ip)
print(trans_ip_int(ip, 1))
print(trans_ip_int(intip, 2))