日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python16进制转10进制_python 字节串及10进制,16进制相关转换

發布時間:2025/3/15 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python16进制转10进制_python 字节串及10进制,16进制相关转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

進行協議解析時,總是會遇到各種各樣的數據轉換的問題,從二進制到十進制,從字節串到整數等等

整數之間的進制轉換:

10進制轉16進制: hex(16) ==> 0x10

16進制轉10進制: int('0x10', 16) ==> 16

類似的還有oct(), bin()

字符串轉整數:

10進制字符串: int('10') ==> 10

16進制字符串: int('10', 16) ==> 16

16進制字符串: int('0x10', 16) ==> 16

字節串轉整數:

轉義為short型整數: struct.unpack(' (1, 0)

轉義為long型整數: struct.unpack(' (1,)

整數轉字節串:

轉為兩個字節: struct.pack(' b'\x01\x00\x02\x00'

轉為四個字節: struct.pack(' b'\x01\x00\x00\x00\x02\x00\x00\x00'

字符串轉字節串:

字符串編碼為字節碼: '12abc'.encode('ascii') ==> b'12abc'

數字或字符數組: bytes([1,2, ord('1'),ord('2')]) ==> b'\x01\x0212'

16進制字符串: bytes().fromhex('010210') ==> b'\x01\x02\x10'

16進制字符串: bytes(map(ord, '\x01\x02\x31\x32')) ==> b'\x01\x0212'

16進制數組: bytes([0x01,0x02,0x31,0x32]) ==> b'\x01\x0212'

字節串轉字符串:

字節碼解碼為字符串: bytes(b'\x31\x32\x61\x62').decode('ascii') ==> 12ab

字節串轉16進制表示,夾帶ascii: str(bytes(b'\x01\x0212'))[2:-1] ==> \x01\x0212

字節串轉16進制表示,固定兩個字符表示: str(binascii.b2a_hex(b'\x01\x0212'))[2:-1] ==> 01023132

字節串轉16進制數組: [hex(x) for x in bytes(b'\x01\x0212')] ==> ['0x1', '0x2', '0x31', '0x32']

假設:

hex_string = “deadbeef”

轉換成字符串格式

>>> hex_data = hex_string.decode("hex")

>>> hex_data

"\xde\xad\xbe\xef"

轉換成字節數組

>>> import array

>>> array.array('B', hex_data)

array.array('B', [0xDE, 0xAD, 0xBE, 0xEF])

轉換成字節列表

>>> map(ord, hex_data)

[0xDE, 0xAD, 0xBE, 0xEF]

如果是2.6以后版本:

>>> bytearray(hex_data)

bytearray(b'\xde\xad\xbe\xef')

然而有可能出現無法打印的字符串,例如:\x12\x45\x00AB

這種情況下:不要用.decode(“hex”)

下面的將返回bytearray,并在python3中正常工作

bytearray.fromhex(“de ad be ef 00”)

使用binascii

import binascii

a='45222e'

s=binascii.unhexlify(a)

b=[ord(x) for x in s]

直接編寫程序

data = "fef0babe"

bits = ""

for x in xrange(0, len(data), 2)

bits += chr(int(data[x:x+2], 16))

還原byte型字符串

binascii.b2a_hex(hex_data)

a = b'\xfa\xaa\x00\x14\tcT9000027\x10\x01\x03\xeb\xbb\xfb'

b = a.hex() # 字節串轉16進制

y = bytes().fromhex(b) #16進制轉字節串

c=int(s,16) # 16進制轉成10進制

d=hex(c) #10進制轉16進制

總結

以上是生活随笔為你收集整理的python16进制转10进制_python 字节串及10进制,16进制相关转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。