Overskydende-3 - Excess-3
| Stibitz-kode | |
|---|---|
| Cifre | 4 |
| Spor | 4 |
| Cifferværdier | 8 4 −2 −1 |
| Vægt (er) | 1..3 |
| Kontinuitet | Ingen |
| Cyklisk | Ingen |
| Mindste afstand | 1 |
| Maksimal afstand | 4 |
| Redundans | 0,7 |
| Leksikografi | 1 |
| Supplement | 9 |
Overskydende-3 , 3-overskydende eller 10-overskydende-3 binær kode (ofte forkortet XS-3 , 3XS eller X3 ), skiftet binær eller Stibitz-kode (efter George Stibitz , der byggede en relæbaseret tilføjemaskine i 1937) er et selvkomplementært binært kodet decimal (BCD) kode og talsystem . Det er en partisk repræsentation . Overskydende 3-kode blev brugt på nogle ældre computere såvel som i kasseapparater og håndholdte bærbare elektroniske regnemaskiner fra 1970'erne, blandt andre anvendelser.
Repræsentation
Forudindtagne koder er en måde at repræsentere værdier med et afbalanceret antal positive og negative tal ved hjælp af et forud specificeret tal N som en forspændingsværdi. Forudindtatte koder (og grå koder ) er ikke-vægtede koder. I overskydende 3-kode er tal repræsenteret som decimaltal, og hvert ciffer er repræsenteret af fire bits som cifferværdien plus 3 ("overskydende" beløb):
- Det mindste binære tal repræsenterer den mindste værdi ( 0 - overskud ).
- Det største binære tal repræsenterer den største værdi ( 2 N +1 - overskud - 1 ).
| Decimal | Overskydende-3 | Stibitz | BCD 8-4-2-1 | Binær | 3-af-6 CCITT- udvidelse |
4-af-8 Hamming- udvidelse |
|---|---|---|---|---|---|---|
| −3 | 0000 | pseudo-tetrade | Ikke relevant | Ikke relevant | Ikke relevant | Ikke relevant |
| −2 | 0001 | pseudo-tetrade | ||||
| −1 | 0010 | pseudo-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 | pseudo-tetrade | pseudo-tetrade | 1010 | Ikke relevant | Ikke relevant |
| 11 | 1110 | pseudo-tetrade | pseudo-tetrade | 1011 | ||
| 12 | 1111 | pseudo-tetrade | pseudo-tetrade | 1100 | ||
| 13 | Ikke relevant | Ikke relevant | pseudo-tetrade | 1101 | ||
| 14 | pseudo-tetrade | 1110 | ||||
| 15 | pseudo-tetrade | 1111 |
For at kode et tal som f.eks. 127 koder man simpelthen hvert decimaltal som ovenfor, hvilket giver (0100, 0101, 1010).
Overskydende 3 aritmetik bruger forskellige algoritmer end normale ikke-forudindtagne BCD eller binære positionssystemnumre . Efter tilføjelse af to overskydende 3 cifre er råsummen overskydende 6. For eksempel efter at have tilføjet 1 (0100 i overskud-3) og 2 (0101 i overskridelse-3), ser summen ud som 6 (1001 i overskridelse-3) i stedet for 3 (0110 i overskridelse-3). For at rette op på dette problem er det efter at have tilføjet to cifre nødvendigt at fjerne den ekstra forspænding ved at trække binært 0011 (decimal 3 i objektiv binær), hvis det resulterende ciffer er mindre end decimal 10, eller trække binært 1101 (decimal 13 i objektiv binær), hvis der er opstået et overløb (carry). (I 4-bit binær svarer subtraktion af binær 1101 til at tilføje 0011 og omvendt.)
Motivering
Den primære fordel ved overskydende-3-kodning i forhold til ikke-forudindtaget kodning er, at et decimaltal kan være nines 'suppleret (til subtraktion) så let som et binært tal kan være et' suppleret : bare ved at invertere alle bits. Også når summen af to overskydende 3 cifre er større end 9, vil bærebiten til en 4-bit-adderer blive sat højt. Dette virker, fordi en "overskydende" værdi på 6 efter tilføjelse af to cifre resulterer i summen. Da et 4-bit heltal kun kan rumme værdierne 0 til 15, betyder et overskud på 6, at enhver sum over 9 vil løbe over (producere en udførelse).
En anden fordel er, at koderne 0000 og 1111 ikke bruges til noget ciffer. En fejl i en hukommelse eller en grundlæggende transmissionslinje kan resultere i disse koder. Det er også sværere at skrive nul-mønsteret til magnetiske medier.
Eksempel
BCD 8-4-2-1 til overskydende-3 konverteringseksempel i 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
Udvidelser
| 3-af-6 udvidelse | |
|---|---|
| Cifre | 6 |
| Spor | 6 |
| Vægt (er) | 3 |
| Kontinuitet | Ingen |
| Cyklisk | Ingen |
| Mindste afstand | 2 |
| Maksimal afstand | 6 |
| Leksikografi | 1 |
| Supplement | (9) |
| 4-af-8 udvidelse | |
|---|---|
| Cifre | 8 |
| Spor | 8 |
| Vægt (er) | 4 |
| Kontinuitet | Ingen |
| Cyklisk | Ingen |
| Mindste afstand | 4 |
| Maksimal afstand | 8 |
| Leksikografi | 1 |
| Supplement | 9 |
- 3-af-6-kodeudvidelse: Overskydende-3-koden bruges undertiden også til dataoverførsel og udvides derefter ofte til en 6-bit-kode pr. CCITT GT 43 nr. 1, hvor 3 ud af 6 bit er indstillet.
- 4-af-8-kodeudvidelse: Som et alternativ til IBM- transceiverkoden (som er en 4-af-8-kode med en Hamming-afstand på 2) er det også muligt at definere en 4-af-8 overskydende-3-kode udvidelse, der opnår en Hamming-afstand på 4, hvis kun denary cifre skal overføres.
Se også
- Offset binær , overskydende N , partisk repræsentation
- Overskydende-128
- Overskydende grå kode
- Skiftet grå kode
- Grå kode
- m-of-n-kode
- Aiken kode