gpt4 book ai didi

python - 将 ip 转换为二进制

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:52 31 4
gpt4 key购买 nike

我正在尝试将 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 的任何内容,输出全为零。

我敢肯定,我也可以为其中的大部分使用循环,但不知道如何。

最佳答案

这对你有用吗?

oc = int(input("Enter oc1: "))
if oc > 256:
print("Only 256 or less")
else:
binary = bin(oc)[2:]

bin() 将整数转换为二进制,并使用 [2:] 附加物删除前导的“0b”,否则您会得到。

如果你想确保你有 8 个字符,前导零,你可以使用 zfill()。作为另一个附件,zfill(n) 将添加前导零,直到您的字符串长度为 n 个字符。

binary = bin(oc)[2:].zfill(8)

关于python - 将 ip 转换为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28919012/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com