ฉันต้องการแปลงจำนวนเต็มทศนิยมให้เป็นสตริง \xLO\xHI
hex ในขณะที่คงคำนำหน้า "\x" ไว้และไม่ต้องแปล ASCII ที่พิมพ์ได้เป็น ASCII ที่เทียบเท่ากัน
สิ่งที่ฉันต้องการบรรลุ:
>>> dec_to_hex(512)
"\x00\x02"
วิธีแก้ปัญหาต่อไปนี้ที่ฉันพบขณะค้นหาคำตอบนั้นยังดีไม่พอ และฉันจะอธิบายว่าทำไม:
อันนี้ไม่ได้ใส่คำนำหน้า "\x" และไม่ได้แปลเป็นไบต์
>>> hex(512)
'0x200'
ตัวอย่างนี้ใกล้เคียงกันมาก แต่ได้รับเลขฐานสิบหก (ฉันต้องการทศนิยม) และแปลตัวอักษรเป็น ASCII:
>>> from binascii import unhexlify
>>> unhexlify('65004100430005FF70000000')
'e\x00A\x00C\x00\x05\xffp\x00\x00\x00'
อันนี้แปล ASCII เป็นตัวอักษร:
>>> import struct
>>> struct.pack('<h', 512)
'\x00\x02'
>>> struct.pack('<h', 97)
'a\x00'
struct
แปล ascii เป็นอักขระ (97 เป็น 'a', 103 เป็น 'g' ฯลฯ) - person api pota   schedule 23.01.2018print re.sub(r'([0-9A-F]{2})',r'\\x\1','%04X' % 512)
แต่ก็ไม่ได้สิ้นสุดสักหน่อย - person api pota   schedule 23.01.2018repr(struct.pack('<h', 97)).strip("'")
- person Spezi94   schedule 23.01.2018