2014-11-21 176 views
2

我有一個負二進制數,它有一個符號位,並且想要編寫一個程序來獲取它的格雷碼。但是,我只能找到正數的解決方案。所以我在這裏問這個問題。 謝謝。如何將負二進制數轉換爲其格雷碼

+0

你想要什麼樣的負面代碼?只處理你的號碼是無符號的,至少會給你一些東西(也就是說,你可以轉換成灰色代碼,然後回來,你會得到原來的號碼)。 – harold 2014-11-21 09:25:53

回答

0

格雷碼只能計算非負數,使用下面的方法:

int gray_encode(int n) { 
    return n^(n >> 1); 
} 

同樣的方法也不會,因爲二進制數的補碼錶示的負數工作。

+0

這並不能證明它不適用於負數 – harold 2014-11-23 10:19:37

+0

我是否證明它可以回答這個問題? – syntagma 2014-11-23 10:20:17

+0

嗯,我的意思是整個兩個補充交易意味着大正數和負數之間沒有區別,所以如果有任何證明它*是可能的 – harold 2014-11-23 10:28:26

相關問題