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的数字,没有区别。 - 通常情况下,传感器数据必须乘以一些浮点数才能得到“实际”值,应该记录在设备中,不存在“通用公式”。 –