题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
# 整数与IP地址的转换,用到bin(number, /), int(x, base=10)
normal_addr = input()
decimal_addr = input()
def to_decimal_addr(data):
numbers = list(map(int, data.split('.')))
for num in numbers:
bin_str = bin(num)[2:]
str_len = len(bin_str)
tran_str = bin_str if str_len == 8 else '0'*(8 - str_len) + bin_str
numbers[numbers.index(num)] = tran_str
# print(numbers)
result = int("".join(numbers), 2)
return result
def to_normal_addr(data):
int_num = int(data)
bin_str = bin(int_num)[2:]
str_len = len(bin_str)
trans_str = bin_str if str_len % 8 == 0 else '0'*(8 - str_len % 8) + bin_str
# print(trans_str)
tmp = []
for i in range(len(trans_str) // 8):
num = str(int(trans_str[8*i:8*(i+1)], 2))
tmp.append(num)
result = ".".join(tmp)
return result
if __name__ == '__main__':
result_1 = to_decimal_addr(normal_addr)
print(result_1)
result_2 = to_normal_addr(decimal_addr)
print(result_2)
阿里巴巴公司氛围 653人发布