Saya ingin mengonversi bilangan bulat desimal menjadi string hex \xLO\xHI
sambil mempertahankan awalan "\x" dan tanpa menerjemahkan ASCII yang dapat dicetak ke ASCII yang setara.
Apa yang ingin saya capai:
>>> dec_to_hex(512)
"\x00\x02"
Solusi berikut yang saya temukan saat mencari jawaban tidak cukup baik dan saya akan menjelaskan alasannya:
Yang ini tidak menggunakan awalan "\x" dan tidak menerjemahkannya ke byte
>>> hex(512)
'0x200'
Contoh ini sangat mirip tetapi menerima heksadesimal (saya perlu desimal) dan karakter yang diterjemahkan ke ascii:
>>> from binascii import unhexlify
>>> unhexlify('65004100430005FF70000000')
'e\x00A\x00C\x00\x05\xffp\x00\x00\x00'
Yang ini menerjemahkan ASCII menjadi karakter:
>>> import struct
>>> struct.pack('<h', 512)
'\x00\x02'
>>> struct.pack('<h', 97)
'a\x00'
struct
menerjemahkan ascii ke dalam karakter (97 ke 'a', 103 ke 'g' dll). - person api pota   schedule 23.01.2018print re.sub(r'([0-9A-F]{2})',r'\\x\1','%04X' % 512)
tetapi bukan endian kecil - person api pota   schedule 23.01.2018repr(struct.pack('<h', 97)).strip("'")
- person Spezi94   schedule 23.01.2018