在Python中转换二进制数时,得到的结果如下:
b = bin(77)
print(b) # 0b1001101
当我期待01001101
时。我猜测b
让Python知道这是一个二进制数而不是一个整数。这可以在Python中 ,但如果你想与外界沟通,那么这里的安全做法是什么? 这可能是一个愚蠢的例子,但在线转换器例如无法识别上述二进制文件。
简单地删除b
总能做到这一点?因为我似乎遇到了试图编码Ascii85编码器/解码器的问题,其中发生了二进制数的连接。您可以查看此示例here。
我的代码就是这种情况产生以下内容:
ch = 'Man '
list_ = [ord(x) for x in ch] # [77, 97, 110, 32]
binary_repr = ''.join(bin(x) for x in list_) # 0b10011010b11000010b11011100b100000
# When it should be 01001101011000010110111000100000
请注意,简单地将b
替换为什么并不能完全消除它。这可能是一些愚蠢的错误,但有人可以为我清理一下吗?
答案 0 :(得分:4)
>>> format(b, '08b')
其中b是您的号码,' 08b'是你要用来表示你的数字的位数,如果参数是#08b而不是08b,你就得到数字前面的0b。
在每个进一步的操作中使用格式,你应该是好的!
答案 1 :(得分:0)
隐而不宣'吨
str(b)[2:]
做这个工作?
但你可能会做得更好:
"{0:b}".format(77)