Sekstentallsystemet

**Sekstentallsystemet**, bedre kjent som **det heksadesimale tallsystemet**, forkortet **hex**, er et tallsystem med grunntall eller base 16. Navnet «heksadesimal» er en hybrid sammensatt av det greske *hexa* (έξι (exi)) for «seks» og *decimal* fra det latinske ordet for «ti».

Tallsystemet har 16 ulike siffer: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E og F. Det tallsystemet vi bruker til vanlig kalles titallsystemet eller det *desimale* system. De heksadesimale sifrene A, B, C, D, E og F representerer titallsystemets verdier 10, 11, 12, 13, 14 og 15.

Når det er tale om ulike tallsystemer, bruker matematikere grunntallet (tallbasen) i senket skrift (subskript) etter tallet. Forrige setning kan da skrives slik: A16 = 1010, B16 = 1110, C16 = 1210, D16 = 1310, E16 = 1410, F16 = 1510. Grunntallet kan eventuelt skrives med bokstaver, på denne formen:  Ahex = 10dec.

De første 32 positive heltallene skrives på følgende måte:

Det heksadesimale tallsystemet er meget nyttig i arbeid med datamaskiner. Årsaken er at det er nært forbundet med totallsystemet, bedre kjent som det *binære* tallsystemet,  som datamaskiner er basert på. Sammenhengen er slik: Siden 16 = 24, kan ethvert *firesifret binært tall* skrives som et *ensifret heksadesimalt tall* og omvendt. Fire bit (fire binære siffer) kan altså uttrykkes ved ett enkelt heksadesimalt siffer. (Se tabellen nedenfor.) En byte som består av 8 bit kan da kompakt angis med et tosifret heksadesimalt tall. Dette er en stor fordel for mennesker, som leser for eksempel «B4» mye lettere enn byten «10110100».

## Titallsystemets 0–15 i fire ulike tallsystem
Tabellen nedenfor viser titallsystemets verdier 0–15 uttrykt i henholdsvis sekstentall-, titall-, åttetall- og totallsystemet.

## Omregning fra heksadesimalt til desimalt og omvendt
Vi vet fra vanlig titallsmatematikk at et flersifret tall, for eksempel 273, har følgende betydning:

27310 = 2·102 + 7·101 + 3·100 = 200 + 70 + 3 = 273

Når man skal regne om (konvertere) et tall fra heksadesimalt til desimalt går man ut fra samme prinsipp:  siffer nr. 1 bakfra skal multipliseres med grunntallet i nullte potens (160=1), siffer nr. 2 med grunntallet i første potens (161=16) osv. Å konvertere det heksadesimale 2D4 til desimalt blir da slik:

2D416 = (2·162 + 13·161 + 4·160)10 = 51210 + 20810 + 410 = 72410

For å konvertere et tall fra titallsystemet til sekstentallsystemet må man gjentatte ganger utføre heltallsdivisjon med grunntallet 16 og merke seg resten, som vist i eksempelet med tallet 724 nedenfor:

Så begynner man med restene nedenfra. Tallet 724 blir dermed 2D416 i sekstentallsystemet.

## Notasjon i ulike programmeringsspråk
Det er mange måter å betegne heksadesimale tall i ulike programmeringsspråk:
* Ada og VHDL omslutter heksadesimale tall med «numeriske tegn», f.eks. «16#5A3#». (Merk: Ada godtar denne notasjonen for *alle* tallsystemer fra 2 til 16, for både heltall (integer) og flyttall.)
* C, C++ og andre språk med tilsvarende syntaks (sånn som Java) prefikser heksadesimale tall med «0x», f.eks. «0x5A3». 0-tallet i startet blir brukt fordi tall må starte med et numerisk tegn, og «x» står for heksadesimal.
* Pascal og noen Assembler-kompilatorer indikerer heksadesimaler med en tilføyd «h» (hvis noen av tallene starter med en bokstav, så tilføyer man også «0» i starten), f.eks. «0A3Ch», «5A3h».
* Andre assembler-kompilatorer (AT&T, Motorola) og noen versjoner av BASIC bruker prefikset «$», f.eks. «$5A3».
* Noen versjoner av BASIC prefikserer heksadesimale tall med «&h», f.eks. «&h5A3».
* ActionScript, programmeringsspråket til Adobe Flash, omtaler heksadesimale tall med 0x, eks. 0xFFFFFF.

Det finnes ingen enighet om en felles notasjonsstandard, så alle konvensjonene over er i bruk, noen ganger også i samme fremstillng. Forøvrig, siden det er få andre bruksområder for disse, byr dette på lite problemer.

## Brøker
Sekstentallsystemet er bra til å lage brøker med (begge sider heksadesimaltallsuttrykk):

:1/2 = 0,8
:1/3 = 0,5555...
:1/4 = 0,4
:1/5 = 0,3333...
:1/6 = 0,2AAAA...
:1/8 = 0,2
:1/A = 0,19999...
:1/C = 0,15555...
:1/F = 0,1111...

Fordi tallbasen er kvadratisk, danner heksadesimaler oftere uløselige brøker enn titallsystemet. Repeterende desimaler oppstår når nevneren har en primfaktor som ikke finnes i telleren. I sammenheng med heksadesimale tall, gjelder dette hvis og bare hvis nevneren ikke er en toer-potens.

Se tallsystemer for en oversikt over systemer med andre tallbaser.

## Se også
* Webfarger, også kalt heksadesimalfarger

## Referanser