Käänteinen koodi

Käänteinen koodi  ( englanninkielinen  täydennys ) on laskennallisen matematiikan menetelmä, jonka avulla voit vähentää luvun toisesta käyttämällä vain luonnollisten lukujen yhteenlaskuoperaatiota . Aikaisemmin menetelmää käytettiin mekaanisissa laskimissa ( aritmometreissä ). Monet varhaiset tietokoneet, mukaan lukien CDC 6600 , LINC , PDP-1 ja UNIVAC 1107 , käyttivät käänteistä koodia. Useimmat nykyaikaiset tietokoneet käyttävät kahden komplementtia .

Kuvaus

Positiivisen kokonaisluvun käänteinen n - bittinen binäärikoodi koostuu yksibittisestä etumerkkikoodista (binäärinumero 0), jota seuraa ( n −1)-bittinen binääriesitys luvun moduulista (positiivisen luvun käänteinen koodi on sama kuin suora koodi).

Esimerkki. Numeron 5 binääriesitys on 101. Numeron +5 10-bittinen binäärikoodi on 00 0000 0101 .

Negatiivisen kokonaisluvun käänteinen n - bittinen binaarikoodi koostuu yksibittisestä etumerkkikoodista (binäärinumero 1), jota seuraa ( n −1)-bittinen binääriluku, joka on käänteinen ( n −1)-bittinen esitys luvun moduuli. On huomattava, että luvun etumerkin vaihtamiseksi riittää, että kaikki sen numerot käännetään, riippumatta siitä, onko se etumerkki vai tieto.

Esimerkki. Numeron 5 binääriesitys on 101, sen 10-bittinen binääriesitys on 00 0000 0101 . Käänteinen 10-bittinen binaarikoodi -5 on 11 1111 1010 .

Käänteistoimintoa käytetään myös negatiivisen luvun muuntamiseen positiiviseksi. Nämä palautuskoodit ovat käteviä käyttää. Haittapuolena on huomattava, että käänteisissä binäärikoodeissa on kaksi koodia numerolle 0: "positiivinen nolla" 00 0000 0000 ja " negatiivinen nolla " 11 1111 1111 (10-bittiset käänteiset koodit annetaan). Tämä johtaa summausoperaation monimutkaisuuteen. Siksi siirryimme jatkossa lisäkoodeihin etumerkittyjen kokonaislukujen kirjoittamiseen.

N - bittinen käänteinen koodi mahdollistaa lukujen esittämisen välillä −(2 N−1 −1) arvoon 2 N−1 −1 ja lisäkoodin −2 N−1 − 2 N−1 −1.

Binääriesimerkki

Komplementtimenetelmää käytetään pääasiassa binäärilukujärjestelmässä (kanta 2 10 ). Binäärijärjestelmässä komplementti ( käänteinen koodi ) saadaan hyvin yksinkertaisesti kääntämällä jokainen bitti (korvaamalla "0" "1":llä ja päinvastoin). Kahden komplementti (2 :n komplementti ) voidaan saada yhden komplementista (käänteiskoodi) lisäämällä yksi vähiten merkitsevään numeroon (bitti). [1] Tarkastellaan esimerkiksi kahden kokonaisluvun vähentämistä: 100 10  − 22 10 . Jokainen numero kirjoitetaan 8-bittisenä koodina, kun taas merkittävin, 8. bitti, katsotaan etumerkiksi.

0110 0100 2 ( x yhtä kuin desimaaliluku 100 10 ) − 0001 0110 2 ( y yhtä kuin desimaaliluku 22 10 )

summausmenetelmässä tulee summa:

0110 0100 2 ( x ) + 1110 1001 2 (ensimmäinen täydennys y ) + 1 2 (saat toisen täydennyksen) ————————————— 1 0100 1110 2

Kun yhdeksännen (merkittävin, vasen) bitti on hylätty, vastaus on: 0100 1110 2 (tämä on positiivinen luku, joka vastaa desimaalilukua 78 10 ).

Katso myös

Kirjallisuus

Linkit

  1. http://matlab.expponenta.ru/fixedpoint/book1/1.php Arkistokopio , päivätty 9. marraskuuta 2011 Wayback Machinessa K. G. Zhukov “Fixed-Point Blockset User Reference Guide” 1.2. Suoran, käänteisen ja lisäkoodin käsite