Fazla-3 - Excess-3
Stibitz kodu | |
---|---|
Rakamlar | 4 |
Parçalar | 4 |
Rakam değerleri | 8 4 −2 −1 |
Ağırlık (lar) | 1..3 |
Süreklilik | Hayır |
Döngüsel | Hayır |
Minimum mesafe | 1 |
Maksimum mesafe | 4 |
Yedeklilik | 0.7 |
Sözlükbilim | 1 |
Tamamlayıcı | 9 |
Fazlalık-3 , 3-fazla veya 10-fazla-3 ikili kod (genellikle XS-3 , 3XS veya X3 olarak kısaltılır ), kaydırılmış ikili veya Stibitz kodu ( 1937'de röle tabanlı bir toplama makinesi yapan George Stibitz'den sonra ) kendini tamamlayan ikili kodlu ondalık (BCD) kod ve sayı sistemi . Önyargılı bir temsildir . Fazla-3 kodu, diğer kullanımların yanı sıra, bazı eski bilgisayarlarda, yazar kasalarda ve elde tutulan taşınabilir elektronik hesap makinelerinde 1970'lerin yanında kullanıldı.
Temsil
Önyargılı kodlar, önyargı değeri olarak önceden belirlenmiş bir sayı N kullanarak dengeli sayıda pozitif ve negatif sayı içeren değerleri temsil etmenin bir yoludur . Yanlı kodlar (ve Gri kodlar ) ağırlıksız kodlardır. 3'ten fazla kodda, sayılar ondalık basamak olarak gösterilir ve her basamak, basamak değeri artı 3 ("fazla" miktar) olarak dört bitle temsil edilir :
- En küçük ikili sayı, en küçük değeri ( 0 - fazla ) temsil eder .
- En büyük ikili sayı en büyük değeri temsil eder ( 2 N +1 - fazlalık - 1 ).
Ondalık | Fazla-3 | Stibitz | BCD 8-4-2-1 | İkili | 3'ü 6 CCITT uzantısı |
4-of-8 Hamming uzantısı |
---|---|---|---|---|---|---|
−3 | 0000 | sözde tetrade | Yok | Yok | Yok | Yok |
−2 | 0001 | sözde tetrade | ||||
−1 | 0010 | sözde tetrade | ||||
0 | 0011 | 0011 | 0000 | 0000 | … 10 | … 0011 |
1 | 0100 | 0100 | 0001 | 0001 | … 11 | … 1011 |
2 | 0101 | 0101 | 0010 | 0010 | … 10 | … 0101 |
3 | 0110 | 0110 | 0011 | 0011 | … 10 | … 0110 |
4 | 0111 | 0111 | 0100 | 0100 | … 00 | … 1000 |
5 | 1000 | 1000 | 0101 | 0101 | … 11 | … 0111 |
6 | 1001 | 1001 | 0110 | 0110 | … 10 | … 1001 |
7 | 1010 | 1010 | 0111 | 0111 | … 10 | … 1010 |
8 | 1011 | 1011 | 1000 | 1000 | … 00 | … 0100 |
9 | 1100 | 1100 | 1001 | 1001 | … 10 | … 1100 |
10 | 1101 | sözde tetrade | sözde tetrade | 1010 | Yok | Yok |
11 | 1110 | sözde tetrade | sözde tetrade | 1011 | ||
12 | 1111 | sözde tetrade | sözde tetrade | 1100 | ||
13 | Yok | Yok | sözde tetrade | 1101 | ||
14 | sözde tetrade | 1110 | ||||
15 | sözde tetrade | 1111 |
127 gibi bir sayıyı kodlamak için, yukarıdaki gibi ondalık basamakların her birini kodlayarak (0100, 0101, 1010) verir.
Aşırı-3 aritmetiği, normal önyargılı olmayan BCD veya ikili konumsal sistem numaralarından farklı algoritmalar kullanır . İki fazla 3 basamak ekledikten sonra, ham toplam fazla-6'dır. Örneğin, 1 (0100 fazla-3) ve 2 (0101 fazla-3) ekledikten sonra, toplam 3 (0110 fazla-3) yerine 6 (fazla 1001-3) gibi görünür. Bu sorunu düzeltmek için, iki basamak ekledikten sonra, ortaya çıkan basamak ondalık 10'dan küçükse ikili 0011'i (tarafsız ikilide ondalık 3) çıkararak veya ikili 1101'i (tarafsız olarak ondalık 13'ü çıkararak) fazladan önyargıyı kaldırmak gerekir. ikili) bir taşma (taşıma) meydana gelirse . (4-bit ikilide 1101 ikilisini çıkarmak 0011 toplamaya eşdeğerdir ve bunun tersi de geçerlidir.)
Motivasyon
Fazlalık 3 kodlamanın önyargılı olmayan kodlamaya göre birincil avantajı, bir ondalık sayının dokuzların tamamlanması (çıkarma için) olmasıdır, tıpkı ikili bir sayı birlerin tamamlanması gibi, sadece tüm bitleri ters çevirerek. Ayrıca, iki fazla 3 basamağın toplamı 9'dan büyük olduğunda, 4 bitlik bir toplayıcının taşıma biti yüksek ayarlanacaktır. Bunun işe yaramasının nedeni, iki basamak ekledikten sonra 6'nın "fazla" değerinin toplamla sonuçlanmasıdır. 4 bitlik bir tamsayı yalnızca 0 ile 15 arasındaki değerleri tutabildiğinden, 6'dan fazla olması, 9'un üzerindeki herhangi bir toplamın taşacağı anlamına gelir (bir gerçekleştirme üretir).
Diğer bir avantaj, 0000 ve 1111 kodlarının herhangi bir rakam için kullanılmamasıdır. Hafızadaki veya temel iletim hattındaki bir arıza bu kodlara neden olabilir. Sıfır modelini manyetik ortama yazmak da daha zordur.
Misal
BCD 8-4-2-1 aşırı-3 dönüştürücü örneğine VHDL :
entity bcd8421xs3 is
port (
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;
architecture dataflow of bcd8421xs3 is
begin
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);
end architecture dataflow; -- of bcd8421xs3
Uzantılar
3'ü 6 uzatma | |
---|---|
Rakamlar | 6 |
Parçalar | 6 |
Ağırlık (lar) | 3 |
Süreklilik | Hayır |
Döngüsel | Hayır |
Minimum mesafe | 2 |
Maksimum mesafe | 6 |
Sözlükbilim | 1 |
Tamamlayıcı | (9) |
4-of-8 uzatma | |
---|---|
Rakamlar | 8 |
Parçalar | 8 |
Ağırlık (lar) | 4 |
Süreklilik | Hayır |
Döngüsel | Hayır |
Minimum mesafe | 4 |
Maksimum mesafe | 8 |
Sözlükbilim | 1 |
Tamamlayıcı | 9 |
- 3'ü 6 kod uzantısı: Fazla 3 kodu bazen veri aktarımı için de kullanılır, daha sonra genellikle 6 bitten 3'ünün ayarlandığı CCITT GT 43 No. 1 başına 6 bitlik bir koda genişletilir .
- 4-of-8 kod uzantısı: IBM alıcı-verici koduna alternatif olarak ( Hamming mesafesi 2 olan 4-of-8 kodudur ), 4-of-8 fazla-3 kodunu tanımlamak da mümkündür Yalnızca sayılar aktarılacaksa, uzantı 4 Hamming mesafesine ulaşır.
Ayrıca bakınız
- Ofset ikili , fazla- N , önyargılı gösterim
- Fazla-128
- Aşırı Gri kodu
- Gri kod değiştirildi
- Gri kod
- m-of-n kodu
- Aiken kodu