以下の内容はhttps://msyksphinz.hatenablog.com/entry/2023/01/28/040000より取得しました。


DIGITAL ELECTRONICS NOTESをやってみる (3. グレイコード)

以下のデジタル回路の問題をやってみる。続き。

lancamentomerlo.my.canva.site

やり方としては、まずMSBの1を保持し、上位ビットから順番に次のビットとのXORを取っていく。

4 3 2 1 0  // bit-position
1 1 0 0 1  // オリジナルグレイコード
1 0 0 0 1  // bit[4]^bit[3] = 0 
1 0 0 0 1  // bit[3]^bit[2] = 0
1 0 0 0 1  // bit[2]^bit[1] = 0
1 0 0 0 1  // bit[1]^bit[1] = 1

というように変換する。これが成立する理由としては、グレイコード自体が、ビットの変化がたかだか1ビットしか変更しないというルールを適用する必要があるためだ。

逆に、2進数からグレイコードに変換するときは、

ja.wikipedia.org

通常の二進表現をグレイコードに変換するには、「対象の二進表現」と、「それを1ビット右シフトし、先頭に0をつけたもの」との排他的論理和をとる。

これは、隣のビットとの変化を見つけていることに相当する。うまく理論的に説明できないが、これでうまく動作するのはなんとなく感覚で分かる。

2進数
0 0 0 0 0 : 00000 ^ 00000 = 00000
0 0 0 0 1 : 00001 ^ 00000 = 00001
0 0 0 1 0 : 00010 ^ 00001 = 00011
0 0 0 1 1 : 00011 ^ 00001 = 00010
0 0 1 0 0 : 00100 ^ 00010 = 00110
0 0 1 0 1 : 00101 ^ 00010 = 00111



以上の内容はhttps://msyksphinz.hatenablog.com/entry/2023/01/28/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14