| スティビッツコード | |
|---|---|
| 数字 | 4 [ 1 ] |
| トラック | 4 [ 1 ] |
| 桁値 | 8 4 −2 −1 |
| 重量 | 1..3 [ 1 ] |
| 連続 | いいえ[ 1 ] |
| 周期的 | いいえ[ 1 ] |
| 最小距離 | 1 [ 1 ] |
| 最大距離 | 4 |
| 重複 | 0.7 |
| 辞書学 | 1 [ 1 ] |
| 補体 | 9 [ 1 ] |
Excess-3、3 - excess [ 1 ] [ 2 ] [ 3 ]、または10-excess-3バイナリコード (しばしばXS-3 [ 4 ] 、3XS [ 1 ]またはX3 [ 5 ] [ 6 ]と略される)、シフトバイナリ[ 7 ] 、またはStibitz コード[ 1 ] [ 2 ] [ 8 ] [ 9 ] ( 1937 年にリレーベースの加算機を製作したGeorge Stibitz [ 10 ]にちなんで[ 11 ] [ 12 ] ) は、自己相補的なバイナリ コード 10 進数(BCD) コードおよび数字システムです。これは偏った表現です。Excess-3 コードは、一部の古いコンピュータや、1970 年代のレジスターや携帯型電子計算機などで使用されていました。
バイアスコードとは、あらかじめ指定された数値Nをバイアス値として使用し、正の数と負の数のバランスが取れた値を表現する方法です。バイアスコード(およびグレイコード)は、重み付けのないコードです。エクステンション3コードでは、数値は10進数で表現され、各桁は4ビットで表され、桁の値に3(「エクステンション」量)を加えた値になります。
127のような数値をエンコードするには、上記のように各10進数をエンコードするだけで、(0100、0101、1010)が得られます。
Excess-3 演算は、通常のバイアスのない BCD またはバイナリ位置システム番号とは異なるアルゴリズムを使用します。2 つの Excess-3 桁を加算すると、生の和は Excess-6 になります。たとえば、1 (Excess-3 では 0100) と 2 (Excess-3 では 0101) を加算すると、和は 3 (Excess-3 では 0110) ではなく 6 (Excess-3 では 1001) のようになります。この問題を修正するには、2 つの桁を加算した後、結果の桁が 10 進数 10 未満の場合はバイナリ 0011 (バイアスのないバイナリでは 10 進数 3) を減算し、オーバーフロー(キャリー) が発生した場合はバイナリ 1101 (バイアスのないバイナリでは 10 進数 13) を減算して余分なバイアスを取り除く必要があります。(4 ビットバイナリでは、バイナリ 1101 を減算することは 0011 を加算することと同じであり、その逆も同様です。) [ 14 ]
非バイアス符号化に対する超過3符号化の主な利点は、10進数を9の補数[ 1 ](減算用)にすることが、2進数を1の補数にするのと同じくらい簡単にできることです。つまり、すべてのビットを反転するだけで済みます。[ 1 ]また、2つの超過3桁の合計が9より大きい場合、4ビット加算器のキャリービットはハイになります。これは、2桁を加算した後、「超過」値が6になる結果が合計になるためです。4ビット整数は0から15までの値しか保持できないため、超過が6ということは、合計が9を超えるとオーバーフロー(キャリーアウト)することを意味します。
もう1つの利点は、コード0000と1111がどの桁にも使用されないことです。メモリまたは基本伝送ラインの障害により、これらのコードが発生する可能性があります。また、ゼロパターンを磁気媒体に書き込むのもより困難です。[ 1 ] [ 15 ] [ 11 ]
VHDLによるBCD 8-4-2-1からエクセス3へのコンバーターの例:
エンティティbcd8421xs3はポート( a : in std_logic ; b : in std_logic ; c : in std_logic ; d : in std_logic ;an : buffer std_logic ; bn : buffer std_logic ; cn : buffer std_logic ; dn : buffer std_logic ;w : out std_logic ; x : out std_logic ; y : out std_logic ; z : out std_logic ); end entity bcd8421xs3 ;bcd8421xs3のアーキテクチャデータフローは、an <= not a ; bn <= not b ; cn <= not c ; dn <= not d ;から始まります。w <= ( an and b and d ) or ( a and bn and cn ) or ( an and b and c and dn ); x <= ( an and bn and d ) or ( an and bn and c and dn ) or ( an and b and cn and dn ) or ( a and bn and cn and d ); y <= ( an and cn and dn ) or ( an and c and d ) or ( a and bn and cn and dn ); z <= ( an and dn ) or ( a and bn and cn and dn );アーキテクチャデータフロー終了; -- bcd8421xs3| 6試合中3試合の延長 | |
|---|---|
| 数字 | 6 [ 1 ] |
| トラック | 6 [ 1 ] |
| 重量 | 3 [ 1 ] |
| 連続 | いいえ[ 1 ] |
| 周期的 | いいえ[ 1 ] |
| 最小距離 | 2 [ 1 ] |
| 最大距離 | 6 |
| 辞書学 | 1 [ 1 ] |
| 補体 | (9)[1] |
| 8試合中4試合の延長 | |
|---|---|
| 数字 | 8 [ 1 ] |
| トラック | 8 [ 1 ] |
| 重量 | 4 [ 1 ] |
| 連続 | いいえ[ 1 ] |
| 周期的 | いいえ[ 1 ] |
| 最小距離 | 4 [ 1 ] |
| 最大距離 | 8 |
| 辞書学 | 1 [ 1 ] |
| 補体 | 9 [ 1 ] |
{{cite book}}:|work=無視されました (ヘルプ){{cite book}}: CS1 maint: 数値名: 著者リスト (リンク)