Я тестирую модуль struct, потому что я хотел бы отправлять простые команды с параметрами в байтах (char) и unsigned int в другое приложение.Python 3 struct.pack() печатать странные символы
Однако я обнаружил некоторые странные вещи при преобразовании в Little Endian неподписанных Int, эти примеры печати правильное шестнадцатеричное представление:
>>> import struct
>>> struct.pack('<I',7)
b'\x07\x00\x00\x00'
>>> struct.pack('<I',11)
b'\x0b\x00\x00\x00'
>>> struct.pack('<I',16)
b'\x10\x00\x00\x00'
>>> struct.pack('<I',15)
b'\x0f\x00\x00\x00'
, но эти примеры, видимо, не так:
>>> struct.pack('<I',10)
b'\n\x00\x00\x00'
>>> struct.pack('<I',32)
b' \x00\x00\x00'
>>> struct.pack('<I',64)
b'@\x00\x00\x00'
Я был бы признателен любой объяснение или намек. Спасибо заранее!
Блестяще объяснено! Я забыл о персонажах ascii, теперь это имеет смысл – MithPaul