Ga naar hoofdinhoud

Hexadecimaal Stelsel

In CSS schrijf je kleuren als #FF5733. Die zes tekens zijn drie koppels hexadecimale cijfers — elk koppel stelt één kleurkanaal voor (rood, groen, blauw).

Hex:#FF5733
RGB:rgb(255, 87, 51)
KanaalHexDecimaal
RoodFF255
Groen5787
Blauw3351

Één hexadecimaal cijfer staat voor 4 bits, twee cijfers samen voor 8 bits (1 byte). Een kleurkanaal loopt van 00₁₆ (0) tot FF₁₆ (255) — en past precies in één byte. Dat maakt hexadecimaal ideaal: compact en direct leesbaar.

De 16 symbolen

Hexadecimaal heeft 16 symbolen: de cijfers 0 t.e.m. 9, aangevuld met de letters A t.e.m. F.

DecimaalHexBinair
000000
110001
220010
330011
440100
550101
660110
770111
881000
991001
10A1010
11B1011
12C1100
13D1101
14E1110
15F1111

De sleutel: elke groep van 4 bits komt exact overeen met één hex-cijfer. Omzetten tussen binair en hex is daardoor razendsnel, zonder te rekenen.

Waarom hex overal opduikt

Hexadecimaal vind je overal in de informatica, telkens waar binaire data compact weergegeven moet worden:

  • CSS-kleuren: #FF5733
  • MAC-adressen: 00:1A:2B:3C:4D:5E
  • Geheugenadressen: 0x7FFC3B2A
  • Foutcodes: 0x80070005

Structuur: posities als machten van 16

Elke positie heeft een waarde als macht van 16:

Positie16316^316216^216116^116016^0
Waarde4096256161

Een hexadecimaal getal lezen

Voorbeeld: Wat is de decimale waarde van 2F316\text{2F3}_{16}?

Cijfer2F3
Positie16216^216116^116016^0
Waarde2 × 256 = 51215 × 16 = 2403 × 1 = 3

2F316=512+240+3=75510\text{2F3}_{16} = 512 + 240 + 3 = 755_{10}

Notatie in code

In de meeste programmeertalen schrijf je hexadecimale getallen met het prefix 0x:

// JavaScript
const rood = 0xFF; // 255
console.log(0xFF); // 255
console.log((255).toString(16)); // "ff"
console.log(parseInt("FF", 16)); // 255
// C#
int rood = 0xFF; // 255
Console.WriteLine(0xFF); // 255
Console.WriteLine(255.ToString("X")); // "FF"
Console.WriteLine(Convert.ToInt32("FF", 16)); // 255