To-komplement

En metode til at repræsentere tal på, når de kan være såvel positive som negative. En almindelig repræsentation af ikke-negative tal benytter et positionssystem, dvs. at de enkelte bitpositioner i en bitstreng hver har en vægt, som er en potens af to (dvs. 1, 2, 4, 8, ...). Hvis de mindst betydende cifre som sædvanlig er til højre, vil bitmønsteret 00010011 (8 bit) repræsentere tallet 19, mens 11101101 vil repræsentere tallet 237.

Nu kan mange dataværdier i det virkelige liv også antage negative værdier, og det er derfor nødvendigt at finde en metode til også at repræsentere negative tal. Der findes flere måder at gøre dette på, sign-magnitude, ét-komplement og to-komplement. To-komplement er langt den mest anvendte metode for heltal.

Metoden går ud på at dele de mulige bitstrenge af en bestemt længde (f.eks. computerens ordlængde 8, 16 eller 32 bit) i to grupper, hvoraf den ene repræsenterer negative tal, den anden de ikke-negative tal. Bruger vi som eksempel 8 bit og arbejder med heltal, vil bitmønstre med mest betydende bit 0 (dvs. 00000000 til 01111111) repræsentere de ikke-negative tal, og resten (10000000 til 11111111) de negative tal. Repræsentationen for et negativt tal, f.eks. -19, vil dannes ved, at man tager komplementet af det tilsvarende positive tal (her 19) og lægger 1 til; i eksemplet er komplementet af 00010011 (19) bitstrengen 11101100, og -19 vil derfor blive repræsenteret ved strengen 11101101. Det største negative tal bliver 10000000 eller -128, det mindste 11111111 eller -1.

Fordelen ved at bruge to-komplementmetoden er, at tal kan lægges sammen (eller trækkes fra hinanden), som om bitstrengene repræsenterer fortegnsløse tal, og stadig give et korrekt resultat, og at der kun findes én repræsentation for tallet 0. Den mest betydende bit (længst til venstre) vil angive fortegnet. Ulempen ved repræsentationen er, at der er flere negative tal end positive, således at vending af fortegn kan give overløb. Talområdet for 8 bit bliver -128 til 127, for 16 bit -32768 til 32767, for 32 bit -2147483648 til 2147483647.

Ét- og to-komplement repræsentation er specialtilfælde af en generel metode. For talsystemer med grundtal 10 findes således ni-komplement og ti-komplement.

Forfattere: 
Klaus Hansen
Casper Thomsen