3
我獲得磁力調整寄存器爲獲得NSData的()(如下所示):如何NSData的轉換爲多類型INTS
<00001a1a 4f56f202 00000000 1dfd421b>
我需要將其轉換爲INT8,UINT8,Int16的,UINT16視我訪問哪個字節。從文檔
來源:
s8 dig_x1;/**< trim x1 data */
s8 dig_y1;/**< trim y1 data */
s8 dig_x2;/**< trim x2 data */
s8 dig_y2;/**< trim y2 data */
u16 dig_z1;/**< trim z1 data */
s16 dig_z2;/**< trim z2 data */
s16 dig_z3;/**< trim z3 data */
s16 dig_z4;/**< trim z4 data */
u8 dig_xy1;/**< trim xy1 data */
s8 dig_xy2;/**< trim xy2 data */
u16 dig_xyz1;/**< trim xyz1 data *
的主要問題是如何在NSData的訪問選擇的字節將其手動轉換要麼INT8或UIint16等?
一般來說,如何解決這樣的問題?應該尋找一種方式來手動迭代NSData並將每個值手動轉換爲?
非常感謝!還有一個小問題:使用您發佈的z1的方法評估爲22095,對於磁力儀調整寄存器中的z1是否合理且可能的值?另外,它的UInt16或Int16值仍然相同,是否正確? – DCDC
它關注我,無論我是否設置爲UInt16或Int16,結果都是一樣的,對於補碼是否正確? – DCDC
@DCDC:對於範圍爲0..32767的數字,沒有區別。 - 通常情況下,傳感器數據必須乘以一些浮點數才能得到「實際」值,應該記錄在設備中,不存在「通用公式」。 –