[go: up one dir, main page]

Tilbake til artikkelen

Tilbake til historikken

heltall – representasjon

Versj. 3
Denne versjonen ble publisert av Kjell Bratbergsengen 6. august 2017. Artikkelen endret 213 tegn fra forrige versjon.

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.

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:

Verdiområder for positive heltall
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

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:

Fortegnet er negativt (1) de andre bitene brukes på vanlig måte til å representere tallets verdi. For eksempel -2 skrives slik: 1 010.

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.

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:

\(\[\ \begin{array}{rccccl} +2:&0&0&1&0& \text{inverter}\\

-2': &1&1&0&1& adder 1\\

+1:&0&0&0&1&\\

=-2:&1&1&1&0& \end{array}

]\)

+2: 0010, inverter

-2':1101, adder 1

+1:0001

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å.

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.