一、python的struct模組/二、位元組順序大小對齊方式 函式#float 轉 16進製制(hex)
import struct
deffloat_to_hex
(f):
return
hex(struct.unpack(
', struct.pack(
', f))[
0])**
****
****
****
****一/二
return
explain
pack(fmt,v1,v2…)
string
按照給定的格式(fmt),把資料轉換成字串(位元組流),並將該字串返回.
pack_into(fmt,buffer,offset,v1,v2…)
none
按照給定的格式(fmt),將資料轉換成字串(位元組流),並將位元組流寫入以offset開始的buffer中.(buffer為可寫的緩衝區,可用array模組)
unpack(fmt,v1,v2……)
tuple
按照給定的格式(fmt)解析位元組流,並返回解析結果
pack_from(fmt,buffer,offset)
tuple
按照給定的格式(fmt)解析以offset開始的緩衝區,並返回解析結果
calcsize(fmt)
size of fmt
計算給定的格式(fmt)占用多少位元組的記憶體,注意對齊方式
三、測試樣例
# float 轉 16進製制(hex)
from ctypes import
*def
float_convert_hex
(s):
#將字串型的數字轉換成10進製數
i =int(s,16)
# convert from hex to a python int(從 hex 轉換為 python int)int() 函式用於將乙個字串或數字轉換為整型。
cp = pointer(c_int(i)
)# make this into a c integer(把這個變成 c 整數)
fp = cast(cp, pointer(c_float)
)# cast the int pointer to a float pointer(將 int 指標轉換為浮點指標)
return fp.contents.value # dereference the pointer, get the float(解引用指標,得到浮點數)
四、ctypes的指標
c_init(i)ctypes
定義了一些和c相容的基本資料型別:
ctypes型別
c型別python型別
c_int
intint
c_float
float
float
c_byte
char
intc_double
double
float
c_char
char
單字元位元組物件
pointer()指標可以通過ctypes
中的pointer()
函式進行建立:pointer()
函式不只是建立了乙個指標例項,它首先建立了乙個指標 型別 。這是通過呼叫pointer()
函式實現的,它接收ctypes
型別為引數,返回乙個新的型別:
cast(cp,pointer(c_float))cast()
函式可以將乙個指標例項強制轉換為另一種 ctypes 型別。
五、bytes.fromhex()
# 16進製制(hex)轉 float
defhex_to_float
(f):
return
(struct.unpack(
'!f'
,bytes
.fromhex(f))[0])
bytesbytes 函式返回乙個新的 bytes 物件,該物件是乙個 0 <= x < 256 區間內的整數不可變序列。它是 bytearray 的不可變版本。
b=bytes.fromhex(a)hex字串向bytes轉換
c=b.hex()bytes向hex字串轉換
source型別
返回整數
長度為 source 的初始化陣列;
字串按照指定的 encoding 將字串轉換為位元組序列;
可迭代型別
元素必須為[0 ,255] 中的整數;
與 buffer 介面一致的物件
此物件也可以被用於初始化 bytearray。
沒有輸入任何引數
預設就是初始化陣列為0個元素。
參考:
python struct模組 用於物件的壓縮
函式 return explain pack fmt,v1,v2 string 按照給定的格式 fmt 把資料轉換成字串 位元組流 並將該字串返回.pack into fmt,buffer,offset,v1,v2 none 按照給定的格式 fmt 將資料轉換成字串 位元組流 並將位元組流寫入以of...
Python struct與小端儲存
在使用python 實現字元向位元組資料型別轉換的時候,python沒有提供專門處理位元組的資料型別,不過python提供了乙個struct模組提供bytes和其他二進位制資料型別的轉換 pack 將任意資料型別轉變為bytes資料型別 import struct struct.pack i 102...
time模組和os模組,json模組
import time def month n time.local struct time time.strptime y m 1 y m d print struct time return time.mktime struct time print month 2 ret time.local...