把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和其他二進位制資料型別的轉換。
struct的pack函式把任意資料型別變成字串:
>>
>
import struct
>>
> struct.pack(
'>i'
,10240099
)'\x00\x9c@c'
char 位元組陣列 轉QString
char位元組陣列型別轉qstring裡邊要特別注意的是,陣列中含有00時,直接用qstring的方法tolatin1 轉換會出問題,遇到0就認為結束。下面是位元組陣列轉qstring型別的列子 位元組陣列轉16進製制字串,用於16進製制顯示 static qstring tohexstr qbyt...
python 位元組轉字串
bytes轉字串方式一 b b xe9 x80 x86 xe7 x81 xab string str b,utf 8 bytes轉字串方式二 b b xe9 x80 x86 xe7 x81 xab string b.decode 第一引數預設utf8,第二引數預設strict bytes轉字串方式三...
python 羅馬數字轉整數
羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m 字元 數值 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字2寫做 ii,即為兩個併排放置的的 1,12寫做xii,即為 x ii 27寫做xxvii,即為xx v ii 在羅馬數字中,小的數字在大的數...