16進制字元串python
⑴ python3 16進制字元串、列表、字元串之間的轉換
在Python操作數據內容時,多數情況下可能遇到下面3種類型的數據處理:
hexstring 如:ƇC532145697A8B6F'
str 如:'x1Cx53x21x45x69x7Ax8Bx6F'
list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F]
各種第三方模塊(如pyDes),或者自己寫的介面中,可能存在由於類型不統一需要在這3種數據中來回切換的情況。
需要用到的核心的方法如下:
list() 將對象轉換為list
str() 將對象轉換為str
bytearray() 將對象轉換為bytearray
bytearray.fromhex() 將對象從hexstring轉換為bytearray
binascii.b2a_hex() 將對象從str轉換為hexstring
如:[0x53, 0x21, 0x6A] -> 'x53x21x6a'
方法:list -> bytearray -> str
如:'x53x216a' -> [0x53, 0x21, 0x6A]
方法:逐個字元轉成十進制
如: [0x53, 0x21, 0x6A] -> A'
方法:list -> bytearray -> str -> hexstring
如: A' -> [0x53, 0x21, 0x6A]
方法:hexstring -> bytearray -> list
如: A' -> 'x53x21x6A'
方法:hexstring -> bytearray -> str
以上內容轉自: https://blog.csdn.net/diaoxuesong/article/details/72123415#
⑵ 如何用python將utf8編碼的16進制字元串轉換成對應的文字
#coding:utf-8
'''
參考用
mystery=b"xe5x88xab"
x=mystery.decode('utf-8')
print(x)
y=bytearray.fromhex(xe5x88xab).decode()
print(y)
'''
var=1
whilevar==1:
a=input('輸入UTF-8的16進制編碼: ')
b=list(a)
#print(b)
leng=len(b)
i=0
while(i<(1.5*leng)):
b.insert(i,'\x')
i+=3
#print(b)
c=str(''.join(b))
#print(c)
d='b'+"'"+c+"'"
#print(d)
x=eval(d).decode('utf8')
print('轉換結果為: {} '.format(x))
我這個是輸入沒有x這種形式的,如輸入「44」(代表「D」的16進制UTF8碼),輸出"D"
如果你需要輸入形如x44這種,需要自己修改一下。
⑶ python 如何將16進制數據字元串去掉0x部分,然後轉換成16進制數據寫入到文件中
#-*-coding:utf-8-*-
__author__='lpe234'
__date__='2015-04-01'
hex_list=['0xAA','0xED','0xEF','0xDE']
f=file('x.txt','a+')
forxinhex_list:
ifx.startswith('0x'):
x=x[2:]
printx
f.write(x+' ')
f.close()
輸出文件:
AA
ED
EF
DE
⑷ 在Python里 16進制的字元串怎麼轉化為漢字呢
做下進制轉換就行了
#python
2.6以後內置函數
#10進制轉為2進制
>>>
bin(10)
'0b1010'
#2進制轉為10進制
>>>
int("1001",2)
9
#10進制轉為16進制
>>>
hex(10)
'0xa'
#16進制到10進制
>>>
int('ff',
16)
255
>>>
int('0xab',
16)
171
#十進制轉為八進制
>>print("%o"
%
10)
>>12
#16進制到2進制
>>>
bin(0xa)
'0b1010'
>>>
⑸ 在Python里 16進制的字元串怎麼轉化為漢字呢
做下進制轉換就行了
#python 2.6以後內置函數
#10進制轉為2進制
>>> bin(10)
'0b1010'
#2進制轉為10進制
>>> int("1001",2)
9
#10進制轉為16進制
>>> hex(10)
'0xa'
#16進制到10進制
>>> int('ff', 16)
255
>>> int('0xab', 16)
171
#十進制轉為八進制
>>print("%o" % 10)
>>12
#16進制到2進制
>>> bin(0xa)
'0b1010'
>>>
⑹ 如何用python將utf8編碼的16進制字元串轉換成對應的文字
你所指的utf-8編碼的16進制字元串應該是在IDE中顯示的問題。如果你要顯示對應的文字,可以將它轉為字元串數據(如果你是用list形式顯示了字元串信息而顯示出來是16進制的話),也可以將它輸出到文本中。
⑺ python我怎麼把數組裡面的每個字元串轉換成16進制數啊
先把字元串轉化為數字格式,
再用hex()把十進度數字轉化為十六進制數
代碼如下:
source=['1','2','3','4']
destination=[]
foriteminsource:
destination.append(hex(int(item)))
print(destination)
輸出如下:
['0x1','0x2','0x3','0x4']
⑻ python 16進制轉字元串
你的16進制的串「C7 EB CE F0 BE C6 BA F3 BC DD B3 B5」是gbk編碼的,通過以下方法可以轉為字元串。
>>>s="C7EBCEF0BEC6BAF3BCDDB3B5"
>>>s=s.replace("","")
>>>prints.decode("hex")
請勿酒後駕車