题解 | #整数与IP地址间的转换#Python:进制转换
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
import sys
def int2bin(num: str) -> str: # 将十进制字符串 num 转化为二进制字符串
num = int(num)
bin_num = list()
base = 2
while num > 0:
digit = num % base
bin_num.append(str(digit))
num = num // base
bin_num = bin_num[::-1]
return ''.join(bin_num)
for line in sys.stdin:
if len(list(line.strip().split("."))) < 4: # 十进制 to IP
num = line.strip()
bin_str = int2bin(num).zfill(32)
ans = [str(int(''.join(bin_str[8*i:8*(i+1)]), 2)) for i in range(4)]
print('.'.join(ans))
else: # IP to 十进制
IP_list = list(line.strip().split('.')) # ['10', '0', '3', '193']
int_num = int(''.join([int2bin(x).zfill(8) for x in IP_list]), 2)
print(str(int_num))
#23届找工作求助阵地##软件开发薪资爆料##我的实习求职记录##你们的毕业论文什么进度了#算法之路 文章被收录于专栏
有关数据结构、算法等的文章

realme公司福利 325人发布