Offset binær - Offset binary

Offset binære , også omtalt som overskud-K , excess- N , overskud-e , overskydende kode eller forudindtaget repræsentation , er en fremgangsmåde til underskrevet talrepræsentation hvor en underskrevet nummer n er repræsenteret ved bit mønster svarende til det usigneret nummer n + K , K er den forspændte værdi eller forskydning . Der er ingen standard for offset binær, men oftest er K for et n- bit binært ord K  = 2 n -1 (for eksempel vil offset for et firecifret binært tal være 2 3 = 8). Dette har den konsekvens, at den minimale negative værdi er repræsenteret af alle-nuller, "nul" -værdien er repræsenteret af en 1 i den mest signifikante bit og nul i alle andre bits, og den maksimale positive værdi er repræsenteret af alle-ene ( bekvemt er dette det samme som at bruge to's komplement, men med den mest betydningsfulde bit er inverteret). Det har også den konsekvens, at man i en logisk sammenligningsoperation får det samme resultat som ved en ægte form numerisk sammenligningsoperation, mens en logisk sammenligning i to's komplementnotation er enig med ægte form numerisk sammenligningsoperation, hvis og kun hvis tallene er sammenlignet har det samme tegn. Ellers vil følelsen af ​​sammenligningen blive omvendt, idet alle negative værdier betragtes som større end alle positive værdier.

Den 5-bit Baudot-kode, der bruges i tidlige synkron multiplekseringstelegrafer, kan ses som en offset-1 ( overskydende-1 ) reflekteret binær (grå) kode .

Et historisk fremtrædende eksempel på offset-64 ( overskydende-64 ) notation var i floating point (eksponentiel) notation i IBM System / 360 og System / 370 generationer af computere. "Karakteristikken" (eksponent) tog form af et syv-bit overskydende-64 tal (Den højordensbit af den samme byte indeholdt tegnet på significand ).

8-bit-eksponenten i Microsoft Binary Format , et floating point-format, der blev brugt på forskellige programmeringssprog (især BASIC ) i 1970'erne og 1980'erne, blev kodet ved hjælp af en offset-129-notation ( overskydende-129 ).

Den IEEE Standard for Floating-Point Aritmetik (IEEE 754) bruger forskellige størrelser af eksponent, men bruger også offset notation for formatet af hver præcision. Usædvanligt bruger den i stedet for at bruge "overskydende 2 n -1 " dog "overskydende 2 n -1  - 1" (dvs. overskud-15 , overskud-127 , overskud-1023 , overskud-16383 ), hvilket betyder, at invertering af det ledende (høj -ordre) bit af eksponenten konverterer ikke eksponenten til at korrigere tos komplementnotation.

Offset binær bruges ofte i digital signalbehandling (DSP). De fleste analoge til digitale (A / D) og digitale til analoge (D / A) chips er unipolære, hvilket betyder, at de ikke kan håndtere bipolære signaler (signaler med både positive og negative værdier). En enkel løsning på dette er at forspænde de analoge signaler med en DC-forskydning svarende til halvdelen af ​​A / D- og D / A-konverterens rækkevidde. De resulterende digitale data ender derefter i offset binært format.

De fleste almindelige computer-CPU-chips kan ikke håndtere offset binært format direkte. CPU-chips kan typisk kun håndtere underskrevne og usignerede heltal og flydende punktformater. Offset binære værdier kan håndteres på flere måder af disse CPU-chips. Dataene kan bare behandles som usignerede heltal, hvilket kræver, at programmøren håndterer nulforskydningen i software. Dataene kan også konverteres til underskrevet heltalformat (som CPU'en kan håndtere indbygget) ved simpelthen at trække nulforskydningen. Som en konsekvens af, at den mest almindelige forskydning for et n- bit ord er 2 n -1 , hvilket indebærer, at den første bit er inverteret i forhold til to's komplement, er der ikke behov for et separat subtraktionstrin, men man kan simpelthen invertere den første bit. Dette er undertiden en nyttig forenkling i hardware og kan også være praktisk i software.

Tabel over forskudt binær for fire bits med to komplement til sammenligning:

Decimal Offset binær,
K = 8
To
komplement
7 1111 0111
6 1110 0110
5 1101 0101
4 1100 0100
3 1011 0011
2 1010 0010
1 1001 0001
0 1000 0000
−1 0111 1111
−2 0110 1110
−3 0101 1101
−4 0100 1100
−5 0011 1011
−6 0010 1010
−7 0001 1001
−8 0000 1000

Offset binær kan konverteres til to komplement ved at invertere den mest betydningsfulde bit. For eksempel med 8-bit værdier kan den forskudte binære værdi være XORed med 0x80 for at konvertere til to komplement. I specialiseret hardware kan det være enklere at acceptere biten, som den er, men at anvende dens værdi i omvendt betydning.

Relaterede koder

Kodesammenligning
Kode Type Parametre Vægte Afstand Kontrol Supplement Grupper på 5 Enkel tilføjelse
Forskydning, k Bredde, n Faktor, q
8421 kode n 0 4 1 8 4 2 1 1–4 Ingen Ingen Ingen Ingen
Nøgenkode 3 n + 2 2 5 3 Ikke relevant 2–5 Ja 9 Ja Ja
Stibitz-kode n + 3 3 4 1 8 4  −2  −1 1–4 Ingen 9 Ja Ja
Diamantkode 27 n + 6 6 8 27 Ikke relevant 3–8 Ja 9 Ja Ja
25 n + 15 15 8 25 Ikke relevant 3+ Ja Ja ? Ja
23 n + 24 24 8 23 Ikke relevant 3+ Ja Ja ? Ja
19 n + 42 42 8 19 Ikke relevant 3–8 Ja 9 Ja Ja
Decimal
 
0
1
2
3
4
5
6
7
8
9
8421
4 3 2 1
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
Stibitz
4 3 2 1
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
Nøgen
5 4 3 2 1
0 0 0 1 0
0 0 1 0 1
0 1 0 0 0
0 1 0 1 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
1 0 1 1 1
1 1 0 1 0
1 1 1 0 1
Diamant
8 7 6 5 4 3 2 1
0 0 0 0 0 1 1 0
0 0 1 0 0 0 0 1
0 0 1 1 1 1 0 0
0 1 0 1 0 1 1 1
0 1 1 1 0 0 1 0
1 0 0 0 1 1 0 1
1 0 1 0 1 0 0 0
1 1 0 0 0 0 1 1
1 1 0 1 1 1 1 0
1 1 1 1 1 0 0 1
19 n + 42
8 7 6 5 4 3 2 1
0 0 1 0 1 0 1 0
0 0 1 1 1 1 0 1
0 1 0 1 0 0 0 0
0 1 1 0 0 0 1 1
0 1 1 1 0 1 1 0
1 0 0 0 1 0 0 1
1 0 0 1 1 1 0 0
1 0 1 0 1 1 1 1
1 1 0 0 0 0 1 0
1 1 0 1 0 1 0 1

Se også

Referencer

Yderligere læsning

  • Gosling, John B. (1980). "6.8.5 Eksponentrepræsentation". I Sumner, Frank H. (red.). Design af aritmetiske enheder til digitale computere . Macmillan Computer Science Series (1 udgave). Datalogisk Institut, University of Manchester , Manchester, UK: The Macmillan Press Ltd . s. 91, 137. ISBN 0-333-26397-9. […] [W] e bruger en [n eksponent] -værdi, der forskydes med det halve af binærområdet for nummeret. […] Denne specielle form kaldes undertiden en forudindtaget eksponent , da den er den konventionelle værdi plus en konstant. Nogle forfattere har kaldt det et kendetegn, men dette udtryk bør ikke bruges, da CDC og andre bruger dette udtryk for mantissa . Det kaldes også en 'overskydende' repræsentation, hvor for eksempel - er 64 for en 7-bit eksponent (2 7−1  = 64). […]
  • Savard, John JG (2018) [2006]. "Decimale repræsentationer" . quadibloc . Arkiveret fra originalen den 16. juli 2018 . Hentet 16.07.2018 . (NB. Nævner overskydende-3, overskydende-6, overskydende-11, overskydende-123.)
  • Savard, John JG (2018) [2007]. "Chen-Ho-kodning og tæt pakket decimal" . quadibloc . Arkiveret fra originalen den 03-07-2018 . Hentet 16-07-2018 . (NB. Nævner overskydende-25, overskydende-250.)
  • Savard, John JG (2018) [2005]. "Flydende punktformater" . quadibloc . Arkiveret fra originalen den 03-07-2018 . Hentet 16-07-2018 . (NB. Omtalelser Overskydende-32, Overskydende-64, Overskydende-128, Overskydende-256, Overskydende-976, Overskydende-1023, Overskydende-1024, Overskydende-2048, Overskydende-16384.)
  • Savard, John JG (2018) [2005]. "Computer-aritmetik" . quadibloc . Arkiveret fra originalen den 16. juli 2018 . Hentet 16.07.2018 . (NB. Nævner overskydende-64, overskydende-500, overskydende-512, overskydende-1024.)