0
特別是在Python 2.4中,不幸的是,這是舊的,我需要將長度轉換爲十六進制值。 1的長度爲'\ x00 \ x01',而65535的長度爲'\ xFF \ xFF'。使用十六進制值將字符串的十六進制值轉換爲Ascii字符
import struct
hexdict = {'0':'\x00\x00', '1':'\x00\x01', '2':'\x00\x02', '3':'\x00\x03', '4':'\x00\x04', '5':'\x00\x05', '6':'\x00\x06', '7':'\x00\x07', '8':'\x00\x08', '9':'\x00\x09', 'a':'\x00\x0a', 'b':'\x00\x0b', 'c':'\x00\x0c', 'd':'\x00\x0d', 'e':'\x00\x0e', 'f':'\x00\x0f'}
def convert(int_value): # Not in original request
encoded = format(int_value, 'x')
length = len(encoded)
encoded = encoded.zfill(length+length%2)
retval = encoded.decode('hex')
if x < 256:
retval = '\x00' + retval
return retval
for x in range(16):
print hexdict[str(hex(x)[-1])] # Original, terrible method
print convert(x) # Slightly better method
print struct.pack(">H", x) # Best method
除了具有象上面一個字典,我如何轉換的任意數< = 65535到該十六進制字符串表示,填充2個字節的空間?
感謝Linuxios以及我在等待答案時找到的答案,我找到了三種方法來做到這一點。顯然,Linuxios的答案是最好的,除非由於某些原因導入結構不是所期望的。
這很可愛... – user2725742
@ user2725742:很高興它是有幫助的! – Linuxios