说我有8位
01010101
等于字节
u
但我实际拥有的是8个二进制文件(好吧,整数)。如何将这8个二进制文件转换为相应的字节?
我正在尝试
byte = int(int('01010101'), 2)
byte = chr(byte)
byte = bytes(byte)
但是这给了我一个字节数组而不是一个字节......
答案 0 :(得分:1)
以下内容被解释为八进制,因为它以'0'
01010101
如果要将其解释为二进制,请添加前缀'0b'
>>> 0b01010101
85
这与将数字表示为int
>>> int(0b01010101)
85
并将值表示为chr
>>> chr(0b01010101)
'U'
另请注意hex
的前缀为'0x'
答案 1 :(得分:1)
你在哪个版本的python上?使用2.7.8:
,使用与您相同的语句得到85和'U'int('01010101', 2)
>>> 85
int(int('01010101', 2)) # not needed
>>> 85
chr(int('01010101', 2))
>>> 'U'
bytes(chr(int('01010101', 2))) # not needed
>>> 'U'
要将二进制数据实际写入文件,请参阅this answer(对于py 2和3)和this。文件mode
应为'wb'。并且不要转换为chr。