**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:

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Titallsystemet (n10) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | **10** | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | **20** | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | **30** | 31 | 32 |
| Sekstentallsystemet (n8) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  A |  B |  C |  D |  E |  F | **10** | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F | **20** |

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.

|  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|  |  |  |  |  |  |  |  |  |  |  |  |
|  | **0**hex | = | 0dec | = | 0oct |  | 0 | 0 | 0 | 0 |  |
|  | **1**hex | = | 1dec | = | 1oct |  | 0 | 0 | 0 | 1 |  |
|  | **2**hex | = | 2dec | = | 2oct |  | 0 | 0 | 1 | 0 |  |
|  | **3**hex | = | 3dec | = | 3oct |  | 0 | 0 | 1 | 1 |  |
|  |  |  |  |  |  |  |  |  |  |  |  |
|  | **4**hex | = | 4dec | = | 4oct |  | 0 | 1 | 0 | 0 |  |
|  | **5**hex | = | 5dec | = | 5oct |  | 0 | 1 | 0 | 1 |  |
|  | **6**hex | = | 6dec | = | 6oct |  | 0 | 1 | 1 | 0 |  |
|  | **7**hex | = | 7dec | = | 7oct |  | 0 | 1 | 1 | 1 |  |
|  |  |  |  |  |  |  |  |  |  |  |  |
|  | **8**hex | = | 8dec | = | 10oct |  | 1 | 0 | 0 | 0 |  |
|  | **9**hex | = | 9dec | = | 11oct |  | 1 | 0 | 0 | 1 |  |
|  | **A**hex | = | 10dec | = | 12oct |  | 1 | 0 | 1 | 0 |  |
|  | **B**hex | = | 11dec | = | 13oct |  | 1 | 0 | 1 | 1 |  |
|  |  |  |  |  |  |  |  |  |  |  |  |
|  | **C**hex | = | 12dec | = | 14oct |  | 1 | 1 | 0 | 0 |  |
|  | **D**hex | = | 13dec | = | 15oct |  | 1 | 1 | 0 | 1 |  |
|  | **E**hex | = | 14dec | = | 16oct |  | 1 | 1 | 1 | 0 |  |
|  | **F**hex | = | 15dec | = | 17oct |  | 1 | 1 | 1 | 1 |  |
|  |  |  |  |  |  |  |  |  |  |  |  |

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:

| Heltalldivisjon | Rest |
| --- | --- |
| 724/16 = 45 | **4** |
| 45/16 = 2 | **13 = D16** |
|  2/16 = 0 | **2** |
|  | **↑** |

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


|  |  |
| --- | --- |
| Oppslagsverk/autoritetsdata | Store norske leksikon **·** MathWorld
 |