【发布时间】:2017-04-12 01:13:53
【问题描述】:
我正在尝试将整数转换为字节字符串数组。
def int2Hex():
hex = '%08x' % 32
bytes = []
for i in range(0,4):
bytes.append('0x' + hex[i*2: i*2 + 2])
return bytes[::-1] #return in little endian
以上代码适用于正数:['0x00', '0x00', '0x00', '0x20']
但是当我使用负数时,我会得到这样的结果:['0x-0', '0x00', '0x00', '0x20']
我想要的负数是 2 的补码字节。我正在使用 python 2。
【问题讨论】:
-
“字节”应该对应的内部格式是什么——某个特定的格式还是系统的本机格式?并非在所有平台中
ints 都是 32 位和大端。超出范围的数字怎么办? -
任务归结为将有符号整数转换为无符号整数。