Digital-circuits-codes
デジタル回路-コード
コーディングでは、数字または文字が特定の記号グループによって表される場合、その数字または文字がエンコードされていると言われます。 シンボルのグループは code と呼ばれます。 デジタルデータはビットのグループとして表され、保存され、送信されます。 このビットのグループは、*バイナリコード*とも呼ばれます。
バイナリコードは2つのタイプに分類できます。
- 加重コード
- 重み付けされていないコード
コードに位置の重みがある場合、それは*重み付きコード*と呼ばれます。 それ以外の場合は、重みのないコードです。 重み付きコードは、正の重み付きコードと負の重み付きコードにさらに分類できます。
10進数のバイナリコード
次の表に、10進数0〜9のさまざまなバイナリコードを示します。
Decimal Digit | 8421 Code | 2421 Code | 84-2-1 Code | Excess 3 Code |
---|---|---|---|---|
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桁を2進数で表すには、最低4ビットが必要です。 ただし、4ビットでは、ゼロと1の16の一意の組み合わせがあります。 小数点以下10桁しかないため、ゼロと1の他の6つの組み合わせは必要ありません。
8 4 2 1コード
- このコードの重みは、8、4、2、および1です。
- このコードにはすべて正の重みがあります。 したがって、これは*正に重み付けされたコード*です。
- このコードは natural BCD (Binary Coded Decimal) code とも呼ばれます。
例
10進数786に相当するBCDを見つけましょう。 この番号には、3桁の10進数7、8、6があります。 表から、7、8、および6のBCD(8421)コードは、それぞれ0111、1000、および0110であると記述できます。
∴(786)〜10〜=(011110000110)〜BCD〜
10進数の各BCDコードには4ビットがあるため、BCD表現には12ビットがあります。
2 4 2 1コード
- このコードの重みは、2、4、2、および1です。
- このコードにはすべて正の重みがあります。 したがって、これは*正に重み付けされたコード*です。
- これは*不自然なBCD *コードです。 不自然なBCDコードの重みの合計は9です。
- これは、*自己補完*コードです。 自己補完コードは、同等の2421表現で1と0を交換するだけで、10進数の9の補数を提供します。
例
10進数786に相当する2421を見つけましょう。 この番号には、3桁の10進数7、8、6があります。 テーブルから、7、8、6の2421コードをそれぞれ1101、1110、1100と書くことができます。
したがって、10進数786に相当する2421は 110111101100 です。
8 4 -2-1のコード
- このコードの重みは8、4、-2、-1です。
- このコードには、正の重みとともに負の重みがあります。 したがって、これは*負の重み付きコード*です。
- これは*不自然なBCD *コードです。
- これは、*自己補完*コードです。
例
10進数786に相当する8 4-2-1を見つけましょう。 この番号には、3桁の10進数7、8、6があります。 表から、7、8、および6の8 4 -2 -1コードをそれぞれ1001、1000、および1010と書くことができます。
したがって、10進数786に相当する8 4 -2 -1は 100110001010 です。
余分な3コード
- このコードには重みはありません。 したがって、これは*重みのないコード*です。
- 10進数の2進数に3(0011)を追加して、10進数の超過3コードを取得します。 したがって、Excess 3コードと呼ばれます。
- これは、*自己補完*コードです。
例
10進数786に相当する超過3を見つけましょう。 この番号には、3桁の10進数7、8、6があります。 テーブルから、7、8、および6の超過3コードは、それぞれ1010、1011、および1001と書くことができます。
したがって、10進数786に相当する超過3は 101010111001 です。
グレーコード
次の表に、各4ビットバイナリコードに対応する4ビットグレイコードを示します。
Decimal Number | Binary Code | Gray Code |
---|---|---|
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 |
- このコードには重みはありません。 したがって、これは*重みのないコード*です。
- 上記の表では、連続するグレイコードは1ビット位置のみが異なります。 したがって、このコードは「ユニット距離」コードと呼ばれます。
バイナリコードからグレーコードへの変換
バイナリコードを同等のグレーコードに変換するには、次の手順に従います。
- 指定されたバイナリコードを考慮し、MSBの左側にゼロを配置します。
- ゼロから始まる連続する2ビットを比較します。 2ビットが同じ場合、出力はゼロになります。 それ以外の場合、出力は1です。
- グレイコードのLSBが取得されるまで、上記の手順を繰り返します。
例
この表から、バイナリコード1000に対応するグレイコードは1100であることがわかります。 次に、上記の手順を使用して検証します。
与えられた、バイナリコードは1000です。
- ステップ1 *-MSBの左側にゼロを配置すると、バイナリコードは01000になります。
ステップ2 *-連続する2ビットの新しいバイナリコードを比較することにより、グレーコードを *1100 として取得します。