题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
http://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
- 思路:如果是ip转数字,则对每8位进行位运算求和即可,如果是数字,先求出32位二进制字符串ip_b, 然后分别对每8位二进制转十进制并组合即可。
ip, ip_num = input().strip(), int(input().strip())
print(sum([int(v) << 8*(3-i) for i, v in enumerate(ip.split("."))]))
ip_b = bin(ip_num)[2:].rjust(32, "0")
print(".".join([str(int(ip_b[i*8:8*(i+1)], 2)) for i in range(4)]))