" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解python的二進(jìn)制轉(zhuǎn)化模塊

 更新時間:2022年01月04日 16:23:28   作者:微小冷  
這篇文章主要為大家介紹了python的二進(jìn)制轉(zhuǎn)化模塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

在pyton中,通過struct模塊來對二進(jìn)制進(jìn)行轉(zhuǎn)換,主要包括兩大類函數(shù),即用于打包的pack和用于解包的unpack。

其中,struct.pack的輸入格式為struct.pack(format, v1, v2, ...),其中format為格式字符串,v1,v2..為將要轉(zhuǎn)成bytes的字符。

例如

>>> import struct
>>> struct.pack('i', 15)
b'\x0f\x00\x00\x00'
>>> struct.pack('iii', 15, 16, 17)
b'\x0f\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00'
>>> struct.pack('b', 255)   #b格式的取值范圍是-128到127
struct.error: byte format requires -128 <= number <= 127
>>> struct.pack('B', 200)
b'\xc8'
>>> struct.pack('B', 71)    #128以內(nèi)可用ASCII表示
b'G'

i代表int,15對應(yīng)的二進(jìn)制代碼為F000,故其輸出為b\x0f\x00\x00\x00。當(dāng)格式字符串為iii時,說明要將三個數(shù)字以整數(shù)類型轉(zhuǎn)化為二進(jìn)制。

其中,格式化字符串中的每個字符都代表一種數(shù)據(jù)類型,其中整型相關(guān)的字符如下,左側(cè)為帶符號整型,右側(cè)為無符號整型

 C語言類型 C語言類型標(biāo)準(zhǔn)大小
bsigned charBunsigned char1
hshortHunsigned short2
iintIunsigned int4
llongLunsigned long4
qlong longQunsigned long long8
nssize_tNsize_t 

其他類型

格式C 類型Python 類型標(biāo)準(zhǔn)大小
x填充字節(jié) 
cchar長度為1的字節(jié)串 
?_Boolbool1
e float2
ffloatfloat4
ddoublefloat8
schar[]字節(jié)串 
pchar[]字節(jié)串 
Pvoid*整數(shù) 

struct中提供了獲取標(biāo)準(zhǔn)大小的函數(shù),calcsize:

>>> struct.calcsize('B')
1
>>> struct.calcsize('i')
4

除了聲明被格式化時的數(shù)據(jù)類型,struct還可以指定對齊方式,例如

>>> struct.pack("i",15)
b'\x0f\x00\x00\x00'
>>> struct.pack(">i",15)    #小端序
b'\x00\x00\x00\x0f'
>>> struct.pack("<i",15)    #大端序
b'\x0f\x00\x00\x00'

其對應(yīng)字符的含義分別為

@=<>!
本機(jī)本機(jī)小端大端網(wǎng)絡(luò)(大端)

其中默認(rèn)為@,即本機(jī)字節(jié)順序。

在熟悉了pack之后,與之對偶的unpack也就沒啥難度了

>>> test = struct.pack("III",125,1255,12555)
>>> struct.unpack("III",test)
(125, 1255, 12555)

除了packunpackstruct模塊還提供了C語言風(fēng)格的一對函數(shù)pack_intounpack_from,二者的聲明分別為

struct.pack_into(format, buffer, offset, v1, v2, ...)
struct.unpack_from(format, /, buffer, offset=0)

其中buffer表示緩沖流,在pack_into中,將v1,v2...offset的偏置打包入buffer中;在unpack_from中,將buffer中的數(shù)據(jù)從offset處依次取出。

struct中封裝了用于二進(jìn)制處理的類Struct,按照以往經(jīng)驗,其pack函數(shù)的實現(xiàn)方法很有可能是下面這種

def pack(format,*args):
    return Struct(format).pack(args)

其中Struct的初始化方法就是輸入一個格式化字符串,例如

>>> s = struct.Struct("III")
>>> s.pack(1,2,3)
b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00'

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Python中的super用法詳解

    Python中的super用法詳解

    這篇文章主要介紹了Python中的super用法詳解,本文講解了關(guān)于super問題的發(fā)現(xiàn)與提出、走進(jìn)Python的源碼世界分析super的實現(xiàn)、延續(xù)的討論super等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Python 命令行參數(shù)sys.argv

    Python 命令行參數(shù)sys.argv

    命令行參數(shù)是通過sys.argv[]來獲取的,sys.argv[0]是代碼文件本身的路徑,因此參數(shù)是從1開始的。比如設(shè)置參數(shù)為: spe
    2008-09-09
  • opencv+圖像處理(Image Processing in OpenCV) 4-0改變顏色空間的過程

    opencv+圖像處理(Image Processing in OpenCV) 

    這篇文章主要介紹了opencv+圖像處理(Image Processing in OpenCV) 4-0改變顏色空間,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Python繪圖示例程序中的幾個語法糖果你知道嗎

    Python繪圖示例程序中的幾個語法糖果你知道嗎

    這篇文章主要為大家詳細(xì)介紹了Python繪圖示例程序中的幾個語法糖果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Pandas中DataFrame數(shù)據(jù)刪除詳情

    Pandas中DataFrame數(shù)據(jù)刪除詳情

    這篇文章主要以介紹的是Pandas中DataFrame的數(shù)據(jù)刪除的相關(guān)資料,主要使用drop、del方式,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • 使用Pytorch Geometric進(jìn)行鏈接預(yù)測的實現(xiàn)代碼

    使用Pytorch Geometric進(jìn)行鏈接預(yù)測的實現(xiàn)代碼

    PyTorch Geometric (PyG)是構(gòu)建圖神經(jīng)網(wǎng)絡(luò)模型和實驗各種圖卷積的主要工具,在本文中我們將通過鏈接預(yù)測來對其進(jìn)行介紹,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2023-10-10
  • python 圖片二值化處理(處理后為純黑白的圖片)

    python 圖片二值化處理(處理后為純黑白的圖片)

    這篇文章主要介紹了python 圖片二值化處理(處理后為純黑白的圖片),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python爬取豆瓣視頻信息代碼實例

    Python爬取豆瓣視頻信息代碼實例

    這篇文章主要介紹了Python爬取豆瓣視頻信息代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Python第三方Window模塊文件的幾種安裝方法

    Python第三方Window模塊文件的幾種安裝方法

    這篇文章主要介紹了Python第三方Window模塊文件安裝方法,需要的朋友可以參考下
    2018-11-11
  • 解決python大批量讀寫.doc文件的問題

    解決python大批量讀寫.doc文件的問題

    今天小編就為大家分享一篇解決python大批量讀寫.doc文件的問題。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論