Mine sisu juurde

Täiendkood

Allikas: Vikipeedia

Täiendkood on kahendarv, mis saadakse, kui otsekoodi madalamad (väiksema kohakaaluga) kohad kopeeritakse (kirjutatakse ümber) kuni esimese 1-ni kaasa arvatud ja ülejäänud kõrgemad (suurema kohakaaluga) kohad inverteeritakse (inverteerimisega tehakse loogilise eituse ehk negatsioonitehe).[1]

Täiendkoodi kasutatakse arvutites negatiivsete arvude esitamisel, näiteks arv 3 esitatakse kui 00000011, aga -3 esitatakse arvu 3 täiendkoodina: 11111101. Sellisel juhul näitab esimene bitt ka arvu märki. Arvu täiendkood on võrdne arvu pöördkoodiga, millele on liidetud 1.

Negatiivsete arvude esitamisel on täiendkoodil mitmeid eeliseid pöördkoodi ees. Esiteks töötavad liitmine, lahutamine ja korrutamine täiendkoodidega täpselt samamoodi, kui positiivsete täisarvude puhul. Teiseks on pöördkoodi puhul arvul 0 kaks esitusviisi (arvu 00000000 pöördkood on 11111111 ja vastupidi). Kolmandaks saab täiendkoodiga esitada arve vahemikus −2n−1...2n-1−1, samas kui pöördkoodiga saab esitada arve ühe võrra vähem: −(2n−1)+1...2n−1−1 (n on bittide arv kahendarvus).

Kahendarvud tabelis on esitatud 8-kohalisena.

Kümnendarv Otsekood Täiendkood Pöördkood
0 00000000 00000000 11111111
1 00000001 11111111 11111110
2 00000010 11111110 11111101
3 00000011 11111101 11111100
12 00001100 11110100 11110011
96 01100000 10100000 10011111
97 01100001 10011111 10011110
127 01111111 10000001 10000000
  1. Digitaalseadmete aritmeetika ja loogika I. Ariste,A.; Loengukonspekt, Tallinna Polütehniline Instituut, Informatsioonitehnika kateeder, 95lk, TPI rotaprint, Tallinn, 1971