0

2 進数の 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 をグレイ コードに変換することです。つまり、一度に 1 ビットずつ変更します。誰かがコードを手伝ってくれますか? たとえば、char binaryNum[10] == 101101 があり、それをグレー コードに変換したい、つまり、一度に 1 ビットだけ変更したい: 101100 101110 101111 このようなもの..

4

1 に答える 1

4

次のように簡単にできます。

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