日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

發(fā)布時(shí)間:2025/3/15 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python16进制转10进制_python 字节串及10进制,16进制相关转换 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

進(jìn)行協(xié)議解析時(shí),總是會遇到各種各樣的數(shù)據(jù)轉(zhuǎn)換的問題,從二進(jìn)制到十進(jìn)制,從字節(jié)串到整數(shù)等等

整數(shù)之間的進(jìn)制轉(zhuǎn)換:

10進(jìn)制轉(zhuǎn)16進(jìn)制: hex(16) ==> 0x10

16進(jìn)制轉(zhuǎn)10進(jìn)制: int('0x10', 16) ==> 16

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

字符串轉(zhuǎn)整數(shù):

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

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

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

字節(jié)串轉(zhuǎn)整數(shù):

轉(zhuǎn)義為short型整數(shù): struct.unpack(' (1, 0)

轉(zhuǎn)義為long型整數(shù): struct.unpack(' (1,)

整數(shù)轉(zhuǎn)字節(jié)串:

轉(zhuǎn)為兩個(gè)字節(jié): struct.pack(' b'\x01\x00\x02\x00'

轉(zhuǎn)為四個(gè)字節(jié): struct.pack(' b'\x01\x00\x00\x00\x02\x00\x00\x00'

字符串轉(zhuǎn)字節(jié)串:

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

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

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

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

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

字節(jié)串轉(zhuǎn)字符串:

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

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

字節(jié)串轉(zhuǎn)16進(jìn)制表示,固定兩個(gè)字符表示: str(binascii.b2a_hex(b'\x01\x0212'))[2:-1] ==> 01023132

字節(jié)串轉(zhuǎn)16進(jìn)制數(shù)組: [hex(x) for x in bytes(b'\x01\x0212')] ==> ['0x1', '0x2', '0x31', '0x32']

假設(shè):

hex_string = “deadbeef”

轉(zhuǎn)換成字符串格式

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

>>> hex_data

"\xde\xad\xbe\xef"

轉(zhuǎn)換成字節(jié)數(shù)組

>>> import array

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

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

轉(zhuǎn)換成字節(jié)列表

>>> map(ord, hex_data)

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

如果是2.6以后版本:

>>> bytearray(hex_data)

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

然而有可能出現(xiàn)無法打印的字符串,例如:\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() # 字節(jié)串轉(zhuǎn)16進(jìn)制

y = bytes().fromhex(b) #16進(jìn)制轉(zhuǎn)字節(jié)串

c=int(s,16) # 16進(jìn)制轉(zhuǎn)成10進(jìn)制

d=hex(c) #10進(jìn)制轉(zhuǎn)16進(jìn)制

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。