1. 程式人生 > >python 讀取24 位有符號整型資料

python 讀取24 位有符號整型資料

兩種辦法

一、補充成4位元組,安int方法解析

import struct
fp=open(filename,'rb') #開啟檔案
chunk=fp.read(3*N)  #讀取N個數據,佔用3*N個位元組
bytess=chunk[i*3:i*3+3] #讀取第i個數據
bytess2=bytess+b'\x00'  #在末尾補充一個空位元組
value=struct.unpack('>i',bytess2)[0]/256  #按照int的方式讀取資料,256是因為資料左移了8位,要變回來。

注意,本次的資料是big endian(大端)資料,因此,是在末尾補充空位元組。如果是little endian

 則應在開頭補充。

二、呼叫rawulib 庫解析

     rawilib中有int24,用u表示.

import rawutil
fp=open(filename,'rb') #開啟檔案
chunk=fp.read(3*N)  #讀取N個數據,佔用3*N個位元組
bytess=chunk[i*3:i*3+3] #讀取第i個數據
value=rawutil.unpack('>1u',bytess)[0]  #按照int24的方式解析資料。

推薦用第二種,效率高。符號‘>’,表示大端資料。 

相關推薦

python 讀取24 符號資料

兩種辦法 一、補充成4位元組,安int方法解析 import struct fp=open(filename,'rb') #開啟檔案 chunk=fp.read(3*N) #讀取N個數據,佔用3*N個位元組 bytess=chunk[i*3:i*3+3] #讀取第i

16符號資料的輸出~~~~

;-----------------------------------------------------------------------------;            __write_int_;        ==========================

32符號舉例

十進位制:1 二進位制:0(符號位,0為正,1為負)0000000000000000000000000000001 十進位制:0 二進位制:0(符號位,0為正,1為負)0000000000000000000000000000000 十進位制:-0 二進位制:0(符號位,0為正

十萬個為什麽——為什麽8bit符號的範圍是-128到127

道理 說了 mips pri 說我 疑惑 有符號 rim 寫到 從譚浩強的C語言到我現在手上的這本C++ Primer Plus,幾乎所有的書都是這麽說的。說來慚愧,我從來沒有研究過為什麽是這個範圍,以前每次看到這裏就頭疼,甚至知道考試要考也不背。 之前我也研究過,但是今天

符號和無符號的計算

int 型別佔四個位元組,一個位元組8位,即int型別有32位 unsigned int 佔2個位元組,即16位 以一道題為例:        unsigned int i=10;        int j=-20;        i+j=? 在程式中負數用補碼進行運算,i

符號和無符號數據溢出問題

signed BE AI pos 技術分享 south 符號整型 有符號 mark 無符號數都有“unsigned”標誌,如果沒有“unsigned”標誌,則程序默認該數為有符號數“signed”。無符號數可正可負 ,有符號數一定為正。由於有符號與無符號數所占用的字節數相同

微信公眾平臺中臨時二維碼的scene_id為32非0

原文: 微信公眾平臺中臨時二維碼的scene_id為32位非0整型                                 &

c# byte陣列轉換 8符號整數 16符號整數 32符號整數

   byte陣列   byte[] aa = new byte[] { 0xF8, 0x66, 0x55, 0x44 }; 1.轉換成8位有符號整數   sbyte sb = (sbyte)aa[0]; 2.轉換成16位有符號整數 &n

Python字串型別轉換為列表型別(資料

我們會發現在使用Matplotlib庫畫圖的時候因為許多引數都是以元組/列表的形式儲存與呼叫, 那我們可不可以通過input()輸入我們需要的引數呢? 測試過後, 發現input()輸入的是字串型別的資料,在使用list()直接對其列表化之後, 每一個單獨的字元都會被轉化列表中的

符號 unsigned int、unsigned long、usigned long long、size_t 比較和格式控制

位數比較 由於資料的長度和平臺相關,所以基於 64 位系統比較。 Windows Linux unsigned int 32 bits/4294967295 32 bits unsigne

資料在不同Python環境中的差異

整型資料在Python3中是沒有大小和範圍的限制   1 num = 10**100 #表示 10 的 100 次方 2 print(num) 此時輸出為正確的答案,10的100次方,即在Python3中,整型是不會溢位的   整型資料在Pyth

符號賦值陷阱

有沒有人嘗試過將負數賦給一個無符號整型變數?知不知道這樣做會發生什麼?還沒有嘗試的就讓我們來探索下無符號整型隱藏的祕密。 先來看看下面程式碼: int main() {       unsigned int val = -1;       cout<<val&

# int Convert.Tolnt32(string value) (+ 18過載) 將數字的指定字串表示形式轉換為等效的32符號整數。 異常: ## 標題System.FormatExce

int Convert.Tolnt32(string value) (+ 18過載) 將數字的指定字串表示形式轉換為等效的32位有符號整數。 異常: ## 標題System.FormatExceptionSystem.OverflowException 求解答

給定一個 32 符號整數,將整數中的數字進行反轉。

class Solution: def reverse(self, x): “”" :type x: int :rtype: int “”" if x<=(pow(2,31)-1) and x>=pow(-2,31): c=abs(x) d=str©

給定一個 32 符號整數,將整數中的數字進行反轉(java實現最全面的)

題目:給定一個 32 位有符號整數,將整數中的數字進行反轉。示例 1:輸入: 123 輸出: 321 示例 2:輸入: -123 輸出: -321注意:假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231,  231 − 1]。根據這個假設,如果反轉後的整數溢

請實現一個反轉32符號整數的函式,例如123—>321,-123->-321,120->21,如果溢位就返回0(面試題)

#include <iostream> #include <string> #include <limits.h>        //解題思路是:首先用一個比32位有符號整數要大的容器來裝這個數字,在這裡我們用的是longlong,然後我們

C語言實現1個無符號的十進位制數,按照要求轉換為二進位制並輸出

輸入1個無符號整型的十進位制數,將其轉換成二進位制,並輸出。(6分) 題目內容: 從鍵盤輸入1個小於65536的無符號整型的十進位制數,將其轉換成二進位制,並輸出。 具體要求完成的功能如下: 1)如輸入負數,則顯示 “請輸入非負數” 2)如超過65535,則顯示

兩個16符號整數轉換為32符號整數的方法

在工作中遇到需要將兩個16位的有符號整數轉換為32位有符號整數的功能,具體情況是需要把PLC裡放在兩個D軟元件裡的32位資料以16位為單位讀到PC端後再轉換為32位資料。經過實踐,方法和注意事項整理如下: 先列出可用方法供大家參考,如有錯誤請指正! 第一種、通過BitCon

python 判斷是否為數字(,浮點

#!/usr/bin/python # -*- coding:utf-8 -*- import sys import math # 判斷是否為數字 def isNum(value): try: value + 1 excep