0

有没有办法将二进制数的char数组转换为格雷码。例如,我有以下代码:

int j;
char binaryNum[10], *pointer;
/* From Hex convert to decimal */
j = strtol( str, &pointer, 16);
/* From Decimal convert to Binary */
itoa(j, binaryNum, 2);
cout<<"Binary form of Y = "<<binaryNum<<"\n";

我想要的是将此 binaryNum 转换为格雷码,即一次更改一位。有人可以帮我写代码吗?例如,我有一个 char binaryNum[10] == 101101 并且我想将其转换为格雷码,即一次只更改一位,例如:101100 101110 101111 类似这样的..

4

1 回答 1

4

它可以很简单:

x_gray = x ^ (x >> 1);
于 2011-02-06T18:37:21.440 回答