import sys
for line in sys.stdin:
a = line.split("\n")[0]
if "." in a:
a_s = a .split(".")
nums = []
for _ in a_s:
temp = bin(int(_))[2:]
if len(temp) < 8:
temp = '0' * (8-len(temp))+temp
nums.append(temp)
num_str = "".join(nums)
#print(num_str)
print(int(num_str,2))
else:
s = bin(int(a)).replace("0b","")
#print(s)
ss = []
for i in range(len(s),-1,-8):
temp = s[i-8:i]
if temp:
ss.append(s[i-8:i])
if len(ss) != 4:
temp = s[:-24]
if len(temp) < 8:
temp = '0' * (8-len(temp))+temp
ss.append(temp)
#print(ss)
res = ""
for i in range(3,-1,-1):
res+=str(int(ss[i],2))+"."
print(res[:-1])
就是每次bin有个0b前缀有点麻烦,还有就是每个数应该是8位需要注意下长度

京公网安备 11010502036488号