Преобразование массива двоичных чисел в счетчик кода Грея в C ++ - PullRequest
0 голосов
/ 06 февраля 2011

есть ли способ преобразовать массив двоичных чисел в код Грея. Например, у меня есть следующий код:

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";

То, что я хочу, - это преобразовать это двоичное число в код Грея, т.е. изменить его по одному биту за раз. Может кто-нибудь помочь мне с кодом? например, у меня есть символ charNum [10] == 101101 и я хочу преобразовать его в серый код, т.е. изменять только один бит за раз, например: 101100 101110 101111 что-то вроде этого ..

1 Ответ

4 голосов
/ 06 февраля 2011

Это может быть просто:

x_gray = x ^ (x >> 1);
...