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))
您可以看到这些值是正确的。
我有以下代码尝试将整数值转换为字节数组中的两个单独的字节。
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))
您可以看到这些值是正确的。