python 整數轉位元組 char

2021-10-09 02:17:00 字數 1049 閱讀 4013

把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 在羅馬數字中,小的數字在大的數...