溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中的binascii模塊如何使用

發(fā)布時(shí)間:2022-05-13 13:40:03 來源:億速云 閱讀:322 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Python中的binascii模塊如何使用”,在日常操作中,相信很多人在Python中的binascii模塊如何使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”Python中的binascii模塊如何使用”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

binascii模塊用法

binascii模塊用于在二進(jìn)制和ASCII之間轉(zhuǎn)換

>> import binascii
# 將binary 轉(zhuǎn)ascii并用十六進(jìn)制表示
>> str1 = b"hello world"  
>> binascii.b2a_hex(b"hello world")
# 輸出 b'68656c6c6f20776f726c64'
# 相反操作
>> binascii.a2b_hex(b'68656c6c6f20776f726c64')
# 輸出b'hello world'
>> binascii.hexlify(b"hello world")     # 注解: 同b2a_hex(), 返回二進(jìn)制 data 的十六進(jìn)制表示。 data 的每個(gè)字節(jié)都轉(zhuǎn)換為相應(yīng)的2位十六進(jìn)制表示。因此返回的字節(jié)對(duì)象的長度是 data 的長度的兩倍。
# 輸出 b'68656c6c6f20776f726c64'
>> binascii.unhexlify(b'68656c6c6f20776f726c64')     # 注解: 同a2b_hex(), 返回由十六進(jìn)制字符串 hexstr 表示的二進(jìn)制數(shù)據(jù)。 hexstr 必須包含偶數(shù)個(gè)十六進(jìn)制數(shù)字(可以是大寫或小寫),否則會(huì)引發(fā) Error 異常。
# 輸出b'hello world'

binascii模塊和進(jìn)制轉(zhuǎn)換筆記

廢話少說,直接上代碼:

# !/usr/bin/env python
# -*- coding:utf-8 -*-
# author:大西瓜
 
# 導(dǎo)入binascii模塊
import binascii
 
a = b'BE27E8FFFF010203'
# 先把b'BE27E8FFFF010203'轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)然后在用十六進(jìn)制表示
b = binascii.b2a_hex(a)
# 打印出:b'42453237453846464646303130323033',例如B對(duì)應(yīng)ascii碼42,E對(duì)應(yīng)ascii碼45
print(b)
 
 
# 與b2a_hex相反,打印出:b'BE27E8FFFF010203'
print(binascii.a2b_hex(b))
 
 
# 這個(gè)功能和b2a_hex()一樣
# 打印出:b'42453237453846464646303130323033',例如B對(duì)應(yīng)ascii碼42,E對(duì)應(yīng)ascii碼45
c = binascii.hexlify(a)
print(c)
 
# 這個(gè)功能和a2b_hex()一樣,打印出:b'BE27E8FFFF010203'
print(binascii.unhexlify(c))

 Python內(nèi)置函數(shù)

  • hex():十進(jìn)制轉(zhuǎn)十六進(jìn)制

#把10進(jìn)制轉(zhuǎn)整形換成16進(jìn)制
>>> hex(88)
'0x58'
#把浮點(diǎn)型轉(zhuǎn)換成16進(jìn)制
>>> 1.23.hex()
'0x1.3ae147ae147aep+0'
#內(nèi)置函數(shù)hex和binascii.hexlify()的區(qū)別就在于,
#hex只能接受整形不能接受字符串
>>> hex('88')
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    hex('88')
TypeError: hex() argument can't be converted to hexbin():ba
  • bin():把十進(jìn)制整形轉(zhuǎn)換成二進(jìn)制字符

#把十進(jìn)制整型轉(zhuǎn)換成二進(jìn)制
>>> bin(88)
'0b1011000'
>>> bin(33)
'0b100001'
oct():把十進(jìn)制轉(zhuǎn)換成八進(jìn)制字符
#把十進(jìn)制轉(zhuǎn)換成八進(jìn)制
>>> oct(500)
'0764'
>>> oct(488)
'0750'
  • chr():把一個(gè)整形轉(zhuǎn)換成ASCII碼表中對(duì)應(yīng)的單個(gè)字符

#把一個(gè)整形轉(zhuǎn)換成ASCII碼表中對(duì)應(yīng)的單個(gè)字符
>>> chr(98)
'b'
>>> chr(97)
'a'
ord():和chr相反,把ASCII碼表中的字符轉(zhuǎn)換成對(duì)應(yīng)的整形
>>> ord('b')
98
>>> ord('c')
99

到此,關(guān)于“Python中的binascii模塊如何使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI