我在xcode中使用objective-c。如何将uint8_t数据转换为十进制二进制补码?范围是-127到127,对吗?
如果我有:
uint8_t test = 0xF2
我可以使用内置的功能或方法吗?有人有一个简单的功能吗?
谢谢!
答案 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。