将int16转换为16位大端位二进制

时间:2014-01-24 18:54:53

标签: python binary int short

我有一个short / int16数组,我需要转换为填充的16位字符串(?)。我尝试过使用struct:

struct.pack('>H', 545)

我得到了:

'\x02!'

我需要格式化为16位的东西。

有谁知道怎么做?我很困惑,对二进制系统几乎一无所知。

干杯

1 个答案:

答案 0 :(得分:3)

16位。 '\x02'为8位,!为其他8位。

你在寻找'0000001000100001'吗?如果是这样,您可以使用format函数执行此操作:

>>> format(545, '016b')
'0000001000100001'

0表示"填充零",16表示"显示至少16位",b表示二进制

如果您不需要零填充,则可以使用bin

>>> bin(545)
'0b1000100001'
>>> bin(545)[2:]
'1000100001'