Getalstelsels omrekenen (binair ↔ hexadecimaal ↔ decimaal)
Reken een getal om tussen binair, hexadecimaal, decimaal en octaal. Vul de waarde in, kies in welk stelsel je hem schrijft, en kopieer elke representatie.
Rekenmachine
Het getal is decimaal 255, binair 0b11111111, hexadecimaal 0xFF en octaal 0377.
In de digitale elektronica werk je voortdurend met verschillende getalstelsels. Een microcontroller rekent intern in binair (grondtal 2), een register of geheugendump lees je meestal in hexadecimaal (grondtal 16) omdat dat compacter is, en mensen denken nu eenmaal in decimaal (grondtal 10). Soms kom je ook nog octaal (grondtal 8) tegen, bijvoorbeeld in oudere systemen of bij bestandsrechten. Deze tool zet één getal in alle vier de stelsels naast elkaar, zodat je niet handmatig hoeft om te rekenen.
Je vult de waarde in zoals je hem opschrijft en kiest het bronstelsel. Schrijf je hexadecimaal, dan typ je bijvoorbeeld FF (of 0xFF); schrijf je binair, dan 11111111 (of 0b11111111). De calculator herkent de gangbare 0x- en 0b-voorvoegsels en negeert spaties, zodat je een nibble-gegroepeerde waarde als 1111 1111 ook gewoon kunt plakken. Alles berust op zuivere wiskunde — geen database, geen onderhoud.
Waarom hexadecimaal?
Eén hexcijfer komt exact overeen met vier bits (een nibble), en twee hexcijfers met één byte. Daardoor is 0xFF veel makkelijker te lezen en te onthouden dan 11111111. Bij het instellen van registers, kleurcodes of bitmaskers werk je daarom bijna altijd in hex.
De formule
decimaal = Σ ( cijfer_i × grondtal^i )\n1 hexcijfer = 4 bits (nibble)\n2 hexcijfers = 1 byte\n8 bits = 1 byte → bereik 0–255 (0x00–0xFF)
- binair — grondtal 2 (0,1)
- octaal — grondtal 8 (0–7)
- decimaal — grondtal 10 (0–9)
- hexadecimaal — grondtal 16 (0–9, A–F)
Voorbeeld: 0xFF = 15·16¹ + 15·16⁰ = 240 + 15 = 255 = 0b11111111.
Uitgewerkt voorbeeld
Je leest in een datasheet dat een register de waarde 0x2A moet krijgen. Wat is dat decimaal en binair?
0x2A = 2·16 + 10 = 32 + 10 = 42 decimaal. Binair is dat 0b101010. Octaal wordt het 052. Andersom: het decimale getal 255 is de grootste waarde die in één byte (8 bits) past, namelijk 0xFF oftewel 0b11111111.
Het « waarom » & de praktijk
Let op de byte-grenzen. Een unsigned waarde van 8 bits loopt van 0 t/m 255 (0x00–0xFF); 16 bits loopt tot 65535 (0xFFFF); 32 bits tot ruim 4 miljard. Wil je een getal opslaan dat groter is dan het bereik van het datatype, dan treedt overflow op en "rolt" de waarde rond. Reken daarom altijd na of je waarde binnen de breedte van je register of variabele past.
Bij negatieve getallen gebruiken processoren meestal de tweecomplement-notatie: het meest significante bit is het tekenbit, en −1 wordt in 8 bits 0xFF (0b11111111). Deze tool werkt met niet-negatieve gehele getallen; voor signed interpretatie moet je het tweecomplement zelf in gedachten houden. Voor het schalen van een analoge meetwaarde naar een digitale code kijk je naar de ADC-resolutie-calculator, en voor het middelen van een PWM-signaal naar de PWM-spanningstool.