Ühe täiend

Kahendarvu ühe täiend (ingl ones' complement) on väärtus, mis saadakse arvu kahendkujul olevate kõigi bittide ümberpööramisel (pööramisel). Nimetus "ühe täiend"Donald Knuth: The Art of Computer Programming, Volume 2: Seminumerical Algorithms, chapter 4.1 viitab asjaolule, et selline ümberpööratud väärtus, kui lisada originaalile, annaks alati numbri "kõik ühed" (termin "täiend" viitab sellistele vastastikku aditiivsete pöördarvude paaridele, siin mitte-0 baasarvu suhtes). See matemaatiline tehe pakub huvi eelkõige arvutiteaduses, kus sellel on erinev mõju sõltuvalt sellest, kuidas konkreetne arvuti numbreid esitab.

Kahendarvu ühe täiendi saamiseks tuleb kõigi bittide numbrid ümber pöörata. 1 -> 0 ja 0 -> 1. Näiteks numbri 0101 (5) ühe täiend oleks 1010 (-5). Numbri 0010 (2) vastav ühe täiend on 1101 (-2)

 Arvutuskäik 
+NumberBinaryÜhe täiendÜhe täiend number000001111 -0100011110 -1200101101 -2300111100 -3401001011 -4501011010 -5601101001 -6701111000 -781000011179100101106101010010151110110100412110000113131101001021411100001115111100000

Kahendarvude ühe täiendi liitmine toimub täpselt samamoodi nagu tavalise kahendarvu korral.   1010  -5        0010  2      
+ 0011  3       + 0100  4      
------  --      ------  -    
  1101  -2        0110  6      Ühe täiendi korral on oluline jälgida ülekannet. Ülekande tekkimisel tuleb olemasolevale arvule juurde liita 1.

Arvude -4 + 6 ja -1 + (-3) liitmine:

  1011  -4                1110  -1
+ 0110  6               + 1100  -3
  ----  --              ------  --
1 0001  1               1 1010  -5
Kuna ülekanne on olemas siis liidame 1 juurde
  0001  1                 1010  -5
+ 0001  1               + 0001  1
 -----  -               ------  --
  0010  2                 1011  -4  Kahe positiivse või kahe negatiivse arvu liitmisel peab jälgima, et vastus piiridest välja ei lähe. Kahendsüsteemis on võimalik 4 bitiga representeerida arve 0 - 16 aga ühe täiend süsteemi kasutades representeeritakse 4 bitiga arve -7 - 7. Suurtemate arvude saamiseks tuleb kasutusele võtta rohkem bitte, nt: 8 bitti ehk 1 byte.

Arvude 4 + 5 vastuseks tuleb 6, mis on vale.  0100  4          
+ 0101  5           
------  --  
  1001  6

  4 + 5 != 6

 Edasiarendus 
Ühe täiend pole arvutisüsteemides enam laialdaselt kasutusel. Kasutati seda arvutites nagu UNIVAC 1101, CDC 160, CDC 6600 ja UNIVAC 1107. Tänapäeval kasutatakse ühe täiend süsteemi veel UNIVAC 1100/2200 seerias. Uued arvutisüsteemid on üle läinud kahe täiendile. Põhjuseks võib lugeda kahe täiendi kiiremat arvutuskäiku, kuna ei pea kontrollima ülekande väärtust. Teiseks kahe täiend süsteemiga pole representeeridud + ja - 0.

 Vaata ka 

 Kahe täiend

 Viited 

Kategooria:Matemaatika