2

我在xcode中使用objective-c。如何将 uint8_t 数据转换为十进制二进制补码?范围是 -127 到 127,对吗?

如果我有:

uint8_t test = 0xF2

我可以使用内置的功能或方法吗?有人有简单的功能吗?

谢谢!

4

2 回答 2

3

这是做你想做的吗?

int8_t twosComplement = (int8_t)test;
于 2012-06-25T17:01:23.680 回答
1

这个问题似乎有点混乱。它要求转换为十进制 2 的补码,但 2 的补码在二进制中有意义,而不是十进制。

如果您想将 unit9_t 值转换为有符号值,您可以 - 将其转换为某种有符号类型,如下所示: (int16_t)unsigned8variable - 将其分配给具有有符号类型的变量

但是,请注意溢出。您的 uint8_t 值可以是 0 到 255 之间的任何值。如果分配给 8 位有符号类型,则表示值从 -128 到 +127,任何大于 127 的原始值都会突然出现负数。选择一个足够大的类型来保存您可能实际看到的任何值。int16_t 会是安全的,因为它会上升到 32767。

于 2012-08-18T21:11:38.170 回答