簡體   English   中英

如何在python中將十六進制轉換為ASCII十六進制字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM