Python Int в Bytearray не конвертируется должным образом - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь преобразовать int в bytearray следующим образом:

test = bytearray(struct.pack(">I", 60000)[2:])
print(test)

Вывод:

bytearray(b'\xea`')

Вместо:

bytearray(b'\xea\x60')

Что кажетсябыть проблемой? и что я мог сделать, чтобы иметь "правильный" вывод?

1 Ответ

0 голосов
/ 01 ноября 2019

Для строк и байтов Python отображает ASCII-представление кодовой точки, если она попадает в диапазон пригодный для печати ASCII, в противном случае он отображается как Hex.

As \x60 это кодовая точка для `в ASCII, вы получаете это. Это только для целей представления, все операции над ними используют нижнюю кодовую точку.

Вы можете проверить это в своем REPL:

In [1]: '\x60'
Out[1]: '`'

In [2]: b'\x60'
Out[2]: b'`'
...