uint8_t到二的补码函数

时间:2012-06-25 16:44:35

标签: objective-c c xcode4.3 twos-complement

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

如果我有:

uint8_t test = 0xF2

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

谢谢!

2 个答案:

答案 0 :(得分:3)

这样做你想要的吗?

int8_t twosComplement = (int8_t)test;

答案 1 :(得分:1)

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

如果要将unit9_t值设为有符号值,则可以 - 将它转换为某种有符号的类型,如:(int16_t)unsigned8variable - 将其分配给具有签名类型的变量

但是,要注意溢出。您的uint8_t值可以是0到255之间的任何值。如果您指定为8位有符号类型,则表示从-128到+127的值,并且任何大于127的原始值将突然显示为负数。选择一个足够大的类型来保存您可能实际看到的任何值。 int16_t是安全的,因为它达到32767。