2012-06-25 67 views
2

我在xcode中使用了objective-c。如何將一個uint8_t數據轉換爲十進制的二進制補碼?範圍是-127到127,是正確的?uint8_t到二進制補碼功能

如果我有:

uint8_t test = 0xF2 

是否有內置的,我可以用一個函數或方法?有人有一個簡單的功能?

謝謝!

+2

您可以轉換爲signed,(int8_t)測試 – TJD

回答

3

這是做你想做的嗎?

int8_t twosComplement = (int8_t)test; 
1

這個問題似乎有點困惑。它要求轉換爲十進制2的補碼,但2的補碼是有意義的只有二進制,不是十進制。

如果你想使一個unit9_t值轉換爲符號的值,你可以 - 它轉換爲某種符號的類型,像這樣:(int16_t)unsigned8variable - 其分配給具有符號類型的變量

但是,請注意溢出。您的uint8_t值可以是0到255之間的任何值。如果分配給8位有符號類型,則表示值爲-128到+127,並且任何大於127的原始值都會突然顯示爲負值。選擇一個足夠大的類型來保存您可能會看到的任何值。 int16_t將是安全的,因爲它上升到32767.