python 整數轉字節 char


 

把10進制整數30,轉換為字節

方法一

chr(30).encode()

結果

 

方法二

struct.pack('B', 30)

 結果

 

 

 

 

准確地講,Python沒有專門處理字節的數據類型。但由於str既是字符串,又可以表示字節,所以,字節數組=str。而在C語言中,我們可以很方便地用struct、union來處理字節,以及字節和int,float的轉換。

在Python中,比方說要把一個32位無符號整數變成字節,也就是4個長度的str,你得配合位運算符這么寫:

>>> n = 10240099 >>> b1 = chr((n & 0xff000000) >> 24) >>> b2 = chr((n & 0xff0000) >> 16) >>> b3 = chr((n & 0xff00) >> 8) >>> b4 = chr(n & 0xff) >>> s = b1 + b2 + b3 + b4 >>> s '\x00\x9c@c' 

非常麻煩。如果換成浮點數就無能為力了。

好在Python提供了一個struct模塊來解決str和其他二進制數據類型的轉換。

structpack函數把任意數據類型變成字符串:

>>> import struct >>> struct.pack('>I', 10240099) '\x00\x9c@c' 

 

 

官網參考:https://docs.python.org/2/library/struct.html#format-characters

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM