[英]How to convert hex into ascii hex string in python?
嗨,我正在學習pySerial模塊,因此ascii的十六進制是其基礎。
到目前為止,我有以下概念。
字節字符串:“ \\ xde”
字節數組:
>>> bytearray('\xde')
bytearray(b'\xde')
>>> a = bytearray('\xde')
>>> a[0]
222
>>> hex(a[0])
'0xde'
十六進制字符串:“ \\ xde”
十六進制:0xde
正常表示形式:de
現在,我需要的是十六進制字符串到十六進制,反之亦然。
也可以十六進制或十六進制字符串表示法線。
我希望我能得到最簡單的答案。
更新:
我想我得到了除字符串操作以外的初步答案。 但這看起來真的很臟。
>>> hex(int(binascii.hexlify('\xde'),16))
'0xde'
讓我重寫一下。
您有一個字節(例如b
,整數值為222(十進制)或de(十六進制),八進制為276,二進制為10111110。
它的十六進制字符串表示形式為'0xde'
以下初始化是相同的:
b = 222
b = 0xde
這是轉換(例如s
是一個字符串, s='0xde'
,即十六進制字符串表示形式)
s = hex(b)
b = int(s, 16)
按評論編輯:
如果您確實希望能夠接受\\xde
以及0xde
作為輸入, 0xde
可以執行以下操作:
b = int('0' + s[1:] if (s[0] == '\\') else s, 16)
或直接
b = int('0' + s[1:], 16)
如果您確定您永遠不會得到奇怪的輸入
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.