デジタル回路-コード
コーディングにおいて、数字または文字が特定の記号のグループによって表される場合、その数字または文字がエンコードされていると言われます。シンボルのグループは、code。デジタルデータは、ビットのグループとして表され、保存され、送信されます。このビットのグループは、binary code。
バイナリコードは2つのタイプに分類できます。
- 加重コード
- 重み付けされていないコード
コードに位置の重みがある場合、次のようになります。 weighted code。それ以外の場合は、重み付けされていないコードです。加重コードは、正の加重コードと負の加重コードにさらに分類できます。
10進数のバイナリコード
次の表に、10進数の0〜9のさまざまなバイナリコードを示します。
10進数 | 8421コード | 2421コード | 84-2-1コード | 過剰3コード |
---|---|---|---|---|
0 | 0000 | 0000 | 0000 | 0011 |
1 | 0001 | 0001 | 0111 | 0100 |
2 | 0010 | 0010 | 0110 | 0101 |
3 | 0011 | 0011 | 0101 | 0110 |
4 | 0100 | 0100 | 0100 | 0111 |
5 | 0101 | 1011 | 1011 | 1000 |
6 | 0110 | 1100 | 1010 | 1001 |
7 | 0111 | 1101 | 1001 | 1010 |
8 | 1000 | 1110 | 1000 | 1011 |
9 | 1001 | 1111 | 1111 | 1100 |
10進数で10桁あります。これらの10桁をバイナリで表すには、最低4ビットが必要です。ただし、4ビットでは、0と1の16の一意の組み合わせがあります。10進数は10桁しかないため、他の6つの0と1の組み合わせは必要ありません。
8 4 21コード
このコードの重みは8、4、2、および1です。
このコードにはすべて正の重みがあります。だから、それはpositively weighted code。
このコードは、 natural BCD (2進化10進数) code。
Example
10進数786に相当するBCDを見つけましょう。この数値には10進数の3桁の7、8、6があります。表から、7、8、6のBCD(8421)コードはそれぞれ0111、1000、0110と書くことができます。 。
∴ (786)10 = (011110000110)BCD
10進数の各BCDコードは4ビットであるため、BCD表現には12ビットがあります。
2 4 21コード
このコードの重みは2、4、2、1です。
このコードにはすべて正の重みがあります。だから、それはpositively weighted code。
それは unnatural BCDコード。不自然なBCDコードの重みの合計は9に等しい。
それは self-complementingコード。自己補完コードは、同等の2421表現で1と0を交換するだけで、10進数の9の補数を提供します。
Example
10進数786に相当する2421を見つけましょう。この数値には10進数の3桁の7、8、6があります。表から、7、8、6の2421コードはそれぞれ1101、1110、1100と書くことができます。
したがって、10進数786に相当する2421は次のようになります。 110111101100。
8 4 -2-1コード
このコードの重みは8、4、-2、および-1です。
このコードには、正の重みとともに負の重みがあります。だから、それはnegatively weighted code。
それは unnatural BCD コード。
それは self-complementing コード。
Example
10進数786に相当する84-2-1を見つけましょう。この数値には10進数の3桁の7、8、6があります。表から、7、8、6の8 4 -2-1コードを記述できます。それぞれ1001、1000、1010です。
したがって、10進数786に相当する8 4 -2-1は次のようになります。 100110001010。
過剰な3コード
このコードには重みがありません。だから、それはun-weighted code。
10進数に相当する2進数に3(0011)を加算することにより、10進数のExcess3コードを取得します。したがって、これはExcess3コードと呼ばれます。
それは self-complementing コード。
Example
10進数786に相当するExcess3を見つけましょう。この番号には10進数の3桁の7、8、6があります。表から、7、8、6のExcess 3コードはそれぞれ1010、1011、1001と書くことができます。
したがって、10進数786に相当するExcess3は次のようになります。 101010111001
グレイコード
次の表に、各4ビットバイナリコードに対応する4ビットグレイコードを示します。
10進数 | バイナリコード | グレイコード |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
11 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |
このコードには重みがありません。だから、それはun-weighted code。
上記の表では、連続するグレイコードは1ビット位置のみが異なります。したがって、このコードは次のように呼ばれます。unit distance コード。
バイナリコードからグレイコードへの変換
バイナリコードを同等のグレイコードに変換するには、次の手順に従います。
与えられたバイナリコードを検討し、MSBの左側にゼロを配置します。
ゼロから始まる連続する2ビットを比較します。2ビットが同じ場合、出力はゼロです。それ以外の場合、出力は1です。
グレイコードのLSBが取得されるまで、上記の手順を繰り返します。
Example
表から、バイナリコード1000に対応するグレイコードは1100であることがわかります。ここで、上記の手順を使用して検証します。
与えられたバイナリコードは1000です。
Step 1 − MSBの左側にゼロを配置すると、バイナリコードは01000になります。
Step 2 −新しいバイナリコードの連続する2ビットを比較することにより、グレイコードは次のようになります。 1100。