タイミング解析とCDC
4ビットのバイナリ 0110(10進数の6)をグレイコードに変換したものはどれか。
- A0111
- B0100
- C0101
答えと解説を見る
正解:C. 0101
バイナリからグレイコードへの変換は、各ビットとその1つ上のビットのXORをとります(最上位ビットはそのまま)。式で書くと g = b XOR (b >> 1) です。0110 を1ビット右にシフトした 0011 とXORをとると、0110 XOR 0011 = 0101 になります。0111 は5の、0100 は7のグレイコードで、6の前後の値です。5→6→7と進むと 0111→0101→0100 となり、隣り合う値の間で1ビットだけが変わっていることが確かめられます。