[問題] 矩陣數值寫成bin檔
請問各位高手高手高高手
因為最近在研究樹莓派上用i2c 讀取 mpu9250
用了 smbus.i2c.read_block_data
讀出來的資料我用print:
[255, 91, 255, 136, 3, 191]
而正確的值是 -164, -119, 959
也就是要先把每兩組數字,比如說第一組: 255, 91,各別轉成16進位: FF, 5B
然後再把 FF5B 轉換成十進位 65371,然後再用65535去減
目前小弟就是先用大量的read_block_data,取得大量
類似[255,91,255,136,3,191]這樣的lsit資料,再另外用hex()寫程式解碼
但是感覺這樣很笨="= 想找更好的函式,直接把16進位數值寫成.bin檔儲存
有查到類似bytes(), bytearray(), 也有人在stackoverflow貼範例CODE:
def splitNumber (num):
lst = []
while num > 0:
lst.append(num & 0xFF)
num >>= 8
return lst[::-1]
with open(fileName, 'br+') as f:
for number in numbers:
f.write(bytes(splitNumber(number)))
但是實在是看不懂QQ
想請問各位高手有沒有推薦的寫法與函式可以參考呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.206.30
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1462355851.A.82A.html
→
05/05 00:16, , 1F
05/05 00:16, 1F
→
05/05 00:16, , 2F
05/05 00:16, 2F
→
05/05 00:51, , 3F
05/05 00:51, 3F
→
05/05 00:52, , 4F
05/05 00:52, 4F
→
05/05 00:53, , 5F
05/05 00:53, 5F
→
05/05 00:55, , 6F
05/05 00:55, 6F
→
05/05 00:57, , 7F
05/05 00:57, 7F
→
05/05 00:59, , 8F
05/05 00:59, 8F
→
05/05 00:59, , 9F
05/05 00:59, 9F
→
05/05 01:03, , 10F
05/05 01:03, 10F
→
05/05 01:13, , 11F
05/05 01:13, 11F
→
05/05 08:51, , 12F
05/05 08:51, 12F
推
05/05 09:26, , 13F
05/05 09:26, 13F
→
05/05 09:29, , 14F
05/05 09:29, 14F
→
05/05 09:30, , 15F
05/05 09:30, 15F
→
05/05 09:30, , 16F
05/05 09:30, 16F
→
05/05 10:24, , 17F
05/05 10:24, 17F
→
05/05 13:36, , 18F
05/05 13:36, 18F
→
05/05 15:35, , 19F
05/05 15:35, 19F
→
05/06 01:57, , 20F
05/06 01:57, 20F
推
05/08 10:56, , 21F
05/08 10:56, 21F
→
05/08 10:56, , 22F
05/08 10:56, 22F
→
05/08 10:56, , 23F
05/08 10:56, 23F
Python 近期熱門文章
PTT數位生活區 即時熱門文章