【发布时间】:2014-02-21 10:30:48
【问题描述】:
我有一些来自加速度计的二进制数据(二进制补码),我需要将其转换为整数。是否有一个标准库函数可以做到这一点,还是我需要编写自己的代码?
例如:我从加速度计接收到一个 NSData 对象,当转换为十六进制时,它看起来像这样:
C0088001803F
这是 3 个 2 字节数据块的串联:
x = C008
y = 8001
z = 803F
只关注 x 轴:
hex = C008
decimal = 49160
binary = 1100000000001000
twos complement = -16376
有没有标准函数可以将二进制补码的 C008 直接转换为 -16376?
谢谢。
【问题讨论】:
-
使用 NSData 将二进制数据转换成任何其他...
-
你能显示二进制数据的类型吗?它是 NSData 的一个实例吗?它是一个 int[]?是只有一个整数还是不止一个?
-
所以你把它作为一个字符串还是 2s 完成?请简单地转储您的 NSData 实例并将其添加到 Q 中。没有假设就很难回答您的问题。
-
@AminNegm-Awad 我没有 NSData 可以转储给您,但是当我将其转换为十六进制时,它看起来像上面那样。我不确定为什么 NSData 的转储看起来很重要 - 问题是我如何将 C008 的十六进制值转换为 -16376。还是我错过了什么?
-
1.您可以使用 -description 转储它。 2. 是的,这很重要:--->你能显示二进制数据的类型吗?所以你得到它是一个字符串还是2s comp lent?不是二进制数据。不是,它可以是 0xC008 或 "C008"。有什么问题要告诉我们?
标签: ios objective-c binary accelerometer twos-complement