Bagaimana cara mengubah hex int ke little endian dengan awalan \x?

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'

person api pota    schedule 23.01.2018    source sumber
comment
Sudahkah Anda mencoba jawaban dari utas ini? Mengenai little endian Anda dapat menggunakan '‹I' alih-alih '›I' yang akan menjadi big endian.   -  person Spezi94    schedule 23.01.2018
comment
struct menerjemahkan ascii ke dalam karakter (97 ke 'a', 103 ke 'g' dll).   -  person api pota    schedule 23.01.2018
comment
Jawaban lainnya hampir sama, print re.sub(r'([0-9A-F]{2})',r'\\x\1','%04X' % 512) tetapi bukan endian kecil   -  person api pota    schedule 23.01.2018
comment
Sudahkah Anda mencoba fungsi repr()? Lihat thread ini tentang cara menggunakannya. Contoh kode: repr(struct.pack('<h', 97)).strip("'")   -  person Spezi94    schedule 23.01.2018
comment
itu diterjemahkan 97 menjadi a juga   -  person api pota    schedule 24.01.2018