1
我在Python 3.6中遇到了數字格式問題。我的目標是將文件中的二進制數據轉換爲可打印的十進制數字。舉個例子,我需要將兩個小端字節轉換成字節字符串的形式...python中的定點二進制解包
B「\ X12 \ 00」
到其大端二進制形式...
最後到其16-bit fixed-point Q15十進制數形式...
(1/4096)+ (1/16384)= 0.00030517578(基本上,我們已經使2字節高於人類可讀)
在我失敗的嘗試中,struct.unpack函數看起來很有前途,但我的低級/數字表示體驗只是目前還不是很成熟。
失敗的嘗試:
struct.unpack('<h', b'\x12\x00') # Yields (18,)
上面的代碼讓我「18」,如果該字節表示一個整數,將被罰款,但他們沒有。
任何幫助/意見,將不勝感激。謝謝!已經由15個比特移位 -
字節確實表示一個整數 - 已被移位15位。除以32768(2 ** 15)得到實際的Q15值。 (這與您計算的值不符,但那是因爲您做了錯誤的數學計算 - 兩組比特實際上具有1/2048和1/16384的位置值。) – jasonharper
@jasonharper你說的對 - 很好!你的解決方案有效,我相信我理解你的方法。謝謝! –