2014-11-21 178 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

相关问题