Omvendt kode

Omvendt kode  ( engelsk  ones' complement ) er en metode til beregningsmatematik , der giver dig mulighed for at trække et tal fra et andet ved kun at bruge additionsoperationen på naturlige tal . Tidligere blev metoden brugt i mekaniske regnemaskiner ( arithometre ). Mange tidlige computere, inklusive CDC 6600 , LINC , PDP-1 og UNIVAC 1107 , brugte en omvendt kode. De fleste moderne computere bruger to's komplement .

Beskrivelse

Den omvendte n - bit binære kode for et positivt heltal består af en en-bit fortegnskode (binært ciffer 0) efterfulgt af en ( n −1)-bit binær repræsentation af tallets modul (den omvendte kode af et positivt tal er det samme som den direkte kode).

Eksempel. Den binære repræsentation af tallet 5 er 101. Den 10-bit binære kode for tallet +5 er 00 0000 0101 .

Den omvendte n - bit binære kode af et negativt heltal består af en en-bit tegnkode (binært ciffer 1) efterfulgt af et ( n −1)-bit binært tal, som er den inverterede ( n −1)-bit repræsentation af tallets modul. Det skal bemærkes, at for at ændre tegnet på et tal, er det nok at invertere alle dets cifre, uanset om det er et fortegnsciffer eller et informationsnummer.

Eksempel. Den binære repræsentation af tallet 5 er 101, dens 10-bit binære repræsentation er 00 0000 0101 . Den gensidige 10-bit binære kode på -5 er 11 1111 1010 .

Inverteringsoperationen bruges også til at konvertere et negativt tal til et positivt. Disse returkoder er praktiske at bruge. Som en ulempe skal det bemærkes, at der i omvendte binære koder er to koder for tallet 0: "positivt nul" 00 0000 0000 og " negativt nul " 11 1111 1111 (10-bit omvendte koder er givet). Dette fører til en vis komplikation af summeringsoperationen. Derfor skiftede vi i fremtiden til yderligere koder til at skrive signerede heltal.

En N -bit omvendt kode giver dig mulighed for at repræsentere tal fra −(2 N−1 −1) til 2 N−1 −1, og en ekstra kode - fra −2 N−1 til 2 N−1 −1.

Binært eksempel

Komplementmetoden bruges hovedsageligt i det binære talsystem (base 2 10 ). I det binære system opnås ens komplement ( omvendt kode ) meget enkelt ved at invertere hver bit (erstatte "0" med "1" og omvendt). To's komplement (2 's komplement ) kan fås fra ens komplement (omvendt kode) ved at lægge en til det mindst signifikante ciffer (bit). [1] Overvej for eksempel subtraktionen af ​​to heltal: 100 10  − 22 10 . Hvert tal skrives som en 8-bit kode, mens den mest betydningsfulde, den 8. bit, betragtes som et tegn.

0110 0100 2 ( x lig med decimal 100 10 ) − 0001 0110 2 ( y lig med decimal 22 10 )

i additionsmetoden bliver summen:

0110 0100 2 ( x ) + 1110 1001 2 (første komplement y ) + 1 2 (for at få det andet komplement) ————————————— 1 0100 1110 2

Efter at have kasseret den niende (mest signifikante, venstre) bit, er svaret: 0100 1110 2 (dette er et positivt tal svarende til decimal 78 10 ).

Se også

Litteratur

Links

  1. http://matlab.exponenta.ru/fixedpoint/book1/1.php Arkiveksemplar dateret 9. november 2011 på Wayback Machine K. G. Zhukov "Fixed-Point Blockset User Reference Guide" 1.2. Konceptet med direkte, omvendte og yderligere koder