题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
def ip_to_num(s): res = "" nums = s.split(".") for num in nums: # 十进制转二进制 bin_unit = bin(int(num))[2:] N = len(bin_unit) if N < 8: bin_unit = "0" * (8-N) + bin_unit res += bin_unit return str(int(res, base=2)) def num_to_ip(s): bin_str = bin(int(s))[2:] N = len(bin_str) # 长度不够补0 if N < 32: bin_str = "0" * (32-N) + bin_str nums = [bin_str[:8], bin_str[8:16], bin_str[16:24], bin_str[24:]] dec_nums = [] for num in nums: dec_nums.append(str(int(num, base=2))) return ".".join(dec_nums) if __name__ == "__main__": while True: try: ip = input() num = input() print(ip_to_num(ip)) print(num_to_ip(num)) except: break