【发布时间】:2015-05-09 06:02:49
【问题描述】:
我正在尝试将输入的 4 个 IP 地址八位字节转换为其二进制形式。这只是将第一个八位字节转换为其 8 位形式的代码的一部分。 'oc' 是八位字节 - 当我开始工作时,我会修复变量名。
remainder = 0
bits = (128,64,32,16,8,4,2,1)
binary = [0,0,0,0,0,0,0,0]
oc = int(input("Enter oc1: "))
if oc > 256:
print("Only 256 or less")
if oc > bits[0] or oc == bits[0]:
binary[0] = 1
remainder = remainder + oc - bits[0]
print(binary)
print(remainder)
elif oc < bits[0]:
binary[0] = 0
print(binary)
if remainder > bits[1] or remainder == bits[1]:
binary[1] = 1
remainder = remainder - bits[1]
print(binary)
print(remainder)
elif oc < bits[1]:
binary[1] = 0
print(binary)
if remainder > bits[2] or oc == bits[2]:
binary[2] = 1
remainder = remainder - bits[2]
print(binary)
print(remainder)
elif oc < bits[2]:
binary[2] = 0
print(binary)
当我输入 128 或更大作为八位字节时,我得到一个成功的输出。
例如:输入 '192' 将显示 '1,1,0,0,0,0,0,0' 但低于 128 的任何内容都将显示为零。
我敢肯定,我也可以在大部分情况下使用循环,但不知道如何。
【问题讨论】:
-
你看过ipaddress吗?
-
我没有看到任何关于将 ip 转换为二进制形式的信息。只是想创建这个程序,以便在将 ip 转换为二进制时带来便利@PeterWood
标签: python python-3.x binary ip