python3:将整数值(2 字节)转换为字节数组中的两个单独的字节

python3: converting interger value(2byte) to two individual bytes in byte array

我有以下代码尝试将整数值转换为字节数组中的两个单独的字节。

value = 13183
print("Initial value: ", value)
val_msb = (value >> 8) & 0xFF
val_lsb = value & 0xFF
print("Value MSB:", val_msb, "Value LSB:", val_lsb)

val_arr = bytearray(2);
val_arr[0] = val_msb
val_arr[1] = val_lsb
print("Byte array:", val_arr)

得到以下与预期不匹配的输出。

Initial value:  13183
Value MSB: 51 Value LSB: 127
Byte array: bytearray(b'3\x7f')

我希望它能生成最终的字节数组 Byte array: bytearray(b'x33\x7f')

字符“3”的字符代码为 51(或 0x33)。所以你在那里看到的 3 不是数值,而是它被翻译成的字符。如果你发出最后一个命令

print(list(val_arr))

您可以看到这些值是正确的。