Heltall, i datasystemer representeres med et antall binære siffer (0,1) i to-tallsystemet. Hvilket verdiområde som dekkes bestemmes av antall siffer som kan brukes og om det skal representeres bare positive heltall eller både positive og negative heltall.
Positive heltall
Alle sifferposisjoner brukes til å bestemme tallverdien. Et binært tall med n siffer kan representere verdier i området 0 til 2n-1. For vanlige ordlengder får vi da følgende verdiområder:
antall siffer | verdiområde | datatype |
---|---|---|
8 | 0-255 | char |
16 | 0-65 535 | ushort |
32 | 0- 4 294 967 295 | uint |
64 | 0-18 446 744 073 709 551 615 | ulong |
Negative heltall
Når en lagrer negative og positive heltall tolkes mest signifikante bit som fortegn: 0 for positive heltall og 1 for negative heltall.
Negative tall kan representeres på tre måter:
fortegn pluss verdi
Fortegnet er negativt (1) de andre bitene brukes på vanlig måte til å representere tallets verdi. For eksempel -2 skrives slik: 1 010.
Invertering av den positive ekvivalent
Det innebærer at bitene inverteres: 0 blir 1 og 1 blir 0. Tallet 2 skrives slik binært når vi bruker fire bit: 0010. -2 blir da: 1101. Denne lagringsformen fører også til at en får to verdier for 0: 0000 = +0 og 1111= -0.
Lagringsformen kalles "one's complement" - komplementær en-form og ble brukt av maskiner som var vanlige i Norge i perioden 1960 - 1990: UNIVAC 1100-serien, CDC 3000 og 6000 seriene og PDP-1.
"Two's complement"- komplementær to-form
Det negative tallet representeres som 1 + (den inverterte formen - one's complement). Dermed unngår man åpentbart to former for 0, og i tillegg får en enklere elektronikk for å utføre de vanlige regneoperasjonene addisjon og subtraksjon. La oss først se på representasjonen av -2:
+2: 0010, inverter
-2':1101, adder 1
+1:0001
=-2:1110
Vi kan teste lagringsformen ved å addere 4 og -2: 4+(-2): 0100+1110=0010 (2 desimalt).
Og ny test: -2+(-2): 1110+1110=1100 (4 desimalt).
Komplementær to-form har blitt den dominerende måte å lagre heltall på.
Verdiområder
Med n bit til rådighet er tallområdet ±2n-1-1 for lagring med fortegn pluss absoluttverdi og komplementær en-form. Tallområdet med komplementær to-form er -2n-1 til 2n-1-1.