Binair naar Decimaal Omrekentool
Reken binaire getallen om naar decimaal en decimaal naar binair. Ondersteunt tot 64-bit getallen. Gratis omrekentool, direct nauwkeurige resultaten.
Hoe werkt de omzetting van binair naar decimaal
Binair (basis-2) gebruikt alleen de cijfers 0 en 1. Elke positie vertegenwoordigt een macht van 2, die dubbel zo groot is als de vorige. Om binair naar decimaal om te zetten, vermenigvuldig elke binair cijfer met zijn plaatswaarde en som de resultaten op.
Forbeeld: Om 1011₂ naar decimaal om te zetten
- Positie 3 (links): 1 × 2³ = 1 × 8 = 8
- Positie 2: 0 × 2² = 0 × 4 = 0
- Positie 1: 1 × 2¹ = 1 × 2 = 2
- Positie 0 (rechts): 1 × 2⁰ = 1 × 1 = 1
- Totaal: 8 + 0 + 2 + 1 = 11
Om decimaal naar binair om te zetten, deel herhaaldelijk door 2 en noteer de resten van onderen naar boven. 11 ÷ 2 = 5 R1, 5 ÷ 2 = 2 R1, 2 ÷ 2 = 1 R0, 1 ÷ 2 = 0 R1 → lees de resten omhoog: 1011.
Deze positie-notatie werkt hetzelfde als decimaal — maar met een andere basis. In decimaal (basis-10) betekent het getal 347 3×10² + 4×10¹ + 7×10⁰ = 300 + 40 + 7. Binair gebruikt dezelfde principes, maar met machten van 2 in plaats van machten van 10.
Referentie tabel voor binair plaatswaarden
De 8-bits byte is de fundamentele eenheid van computeropslag. Hier is de complete tabel met plaatswaarden voor 8-bits getallen (0–255):
| Bitpositie | Macht van 2 | Decimale waarde |
|---|---|---|
| Bit 7 (MSB) | 2⁷ | 128 |
| Bit 6 | 2⁶ | 64 |
| Bit 5 | 2⁵ | 32 |
| Bit 4 | 2⁴ | 16 |
| Bit 3 | 2³ | 8 |
| Bit 2 | 2² | 4 |
| Bit 1 | 2¹ | 2 |
| Bit 0 (LSB) | 2⁰ | 1 |
Een byte kan elk waarde vertegenwoordigen van 0 (00000000₂) tot 255 (11111111₂). Twee bytes (16 bits) dekken 0–65.535. Vier bytes (32 bits) dekken 0–4.294.967.295.
Uitgebreide machten van 2-tabel
Voor programmeurs en computerwetenschappers is het weten van machten van 2 tot 2⁶⁴ essentieel voor het begrijpen van geheugenadressering, gegevenstypen en systeemlimieten:
| Macht | Decimale waarde | Significatie |
|---|---|---|
| 2⁰ | 1 | Minste eenheid (1 bit) |
| 2⁸ | 256 | 1 byte bereik (0–255) |
| 2¹⁰ | 1.024 | 1 KiB (kibibyte) |
| 2¹⁶ | 65.536 | 16-bits bereik; TCP-poortlimiet |
| 2²⁰ | 1.048.576 | 1 MiB (mebibyte) |
| 2²⁴ | 16.777.216 | 24-bits kleur (16,7 miljoen kleuren) |
| 2³⁰ | 1.073.741.824 | 1 GiB (gibibyte) |
| 2³² | 4.294.967.296 | 32-bits adresruimte; IPv4 max |
| 2⁴⁰ | 1.099.511.627.776 | 1 TiB (tebibyte) |
| 2⁶⁴ | 18.446.744.073.709.551.616 | 64-bits adresruimte; moderne CPUs |
Let op de verschillen tussen binair prefixen (KiB, MiB, GiB — machten van 2) en SI prefixen (KB, MB, GB — machten van 10). 1 GB = 1.000.000.000 bytes; 1 GiB = 1.073.741.824 bytes. Deze ~7% verschil verklaart waarom een "500 GB" harde schijf als ~465 GiB wordt weergegeven in je OS (wat typisch binair eenheden intern gebruikt).
Algemene binair waarden in de computer
Deze binair waarden komen vaak voor in programmeren, netwerken en systeembeheer:
| Binair | Decimale | Hexadecimale | Context |
|---|---|---|---|
| 00000000 | 0 | 0x00 | NULL-byte, zwarte kleurkanaal |
| 00001010 | 10 | 0x0A | Enter (Enter) karakter — Unix newline |
| 00001101 | 13 | 0x0D | Terugkeer (CR) — Windows newline deel |
| 00100000 | 32 | 0x20 | Spatie karakter (ASCII) |
| 01000001 | 65 | 0x41 | ASCII 'A' |
| 01100001 | 97 | 0x61 | ASCII 'a' (verschilt van 'A' door bit 5) |
| 01111111 | 127 | 0x7F | Locaal IP (laatste octet); DEL-karakter |
| 10000000 | 128 | 0x80 | Start van uitgebreide ASCII / tekenbit |
| 11000000 | 192 | 0xC0 | Class C-netwerkprefix (192.x.x.x) |
| 11111111 | 255 | 0xFF | Uitzenden; max byte; wit in RGB |
Binair, hexadecimaal en octaal vergelijking
Programmeurs gebruiken verschillende getalbases afhankelijk van de context. Hier is hoe de zelfde waarden in elke systeem verschijnen:
| Decimale | Binair | Hexadecimale | Octaal | Gebruikscase |
|---|---|---|---|---|
| 0 | 0000 | 0x0 | 0o0 | Nul / null |
| 7 | 0111 | 0x7 | 0o7 | Unix-permissie (rwx) |
| 10 | 1010 | 0xA | 0o12 | — |
| 15 | 1111 | 0xF | 0o17 | Max 4-bits (nibble) |
| 16 | 10000 | 0x10 | 0o20 | — |
| 127 | 1111111 | 0x7F | 0o177 | Max getekende 8-bits |
| 255 | 11111111 | 0xFF | 0o377 | Max ongetekende 8-bits |
| 511 | 111111111 | 0x1FF | 0o777 | Unix-permissie rwxrwxrwx |
| 1023 | 1111111111 | 0x3FF | 0o1777 | Max 10-bits (ADC) |
Hexadecimaal is de meest voorkomende afkorting voor binair omdat elke hexadecimale cijfer precies 4 binair bits vertegenwoordigt — wat de omzetting gemakkelijk maakt. Octaal vertegenwoordigt 3 bits per cijfer en wordt voornamelijk gebruikt voor Unix-bestandsrechten (bijv. chmod 755 = 111 101 101 in binair = rwxr-xr-x).
Getekende Binair Getallen (Twee's Complement)
Computers vertegenen negatieve getallen met twee's complement — de standaard die is gedefinieerd door IEEE en gebruikt wordt door bijna alle moderne processors. In een 8-bits twee's complement systeem:
| Binair | Ongetekend Decimaal | Getekend (Twee's Complement) |
|---|---|---|
| 00000000 | 0 | 0 |
| 00000001 | 1 | +1 |
| 01111111 | 127 | +127 (max positief) |
| 10000000 | 128 | −128 (min negatief) |
| 10000001 | 129 | −127 |
| 11111110 | 254 | −2 |
| 11111111 | 255 | −1 |
Om een getal in twee's complement om te zetten: alle bits omkeren en 1 toevoegen. Bijvoorbeeld, +5 = 00000101 → omkeren → 11111010 → 1 toevoegen → 11111011 = −5.
De bereikten voor gemeenschappelijke gehele getal typen:
| Type | Bits | Ongetekend Bereik | Getekend Bereik |
|---|---|---|---|
| byte / uint8 | 8 | 0 tot 255 | −128 tot +127 |
| short / int16 | 16 | 0 tot 65.535 | −32.768 tot +32.767 |
| int / int32 | 32 | 0 tot 4.294.967.295 | −2.147.483.648 tot +2.147.483.647 |
| long / int64 | 64 | 0 tot 18,4 × 10¹⁸ | −9,2 × 10¹⁸ tot +9,2 × 10¹⁸ |
Binair in de Dagelijkse Technologie
Binair is de basis van alle moderne computer technologie omdat transistors twee stabiele toestanden hebben (aan/uit, 1/0). Sleuteltoepassingen:
- Bestandsgrootte: 1 kilobyte = 2¹⁰ = 1.024 bytes; 1 megabyte = 2²⁰ = 1.048.576 bytes; 1 gigabyte = 2³⁰ bytes
- Kleuren: RGB-kleuren zijn drie 8-bits waarden. #FF5733 in hex = (255, 87, 51) in decimaal = (11111111, 01010111, 00110011) in binair
- ASCII codering: De letter 'A' = decimaal 65 = binair 01000001; 'a' = 97 = 01100001
- Unicode: De meeste teksttekens passen in 16-bits binair (0–65.535 bereik)
- IP-adressen: IPv4-adressen zijn vier 8-bits binair groepen: 192.168.1.1 = 11000000.10101000.00000001.00000001
Omgaan met binair helpt rechtstreeks bij programmeren (bitwise operaties, vlaggen), netwerken (IP/subnet berekeningen) en werken met laag niveau hardware.
Binair Rekenen: Optellen en Aftrekken
Binair rekenen volgt dezelfde regels als decimaal, maar met slechts twee cijfers. De optellen tabel is:
| A | B | Som | Overdracht |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Forbeeld: 1011 + 0110
Van rechts naar links werken: 1+0=1, 1+1=10 (schrijf 0 overdracht 1), 0+1+1=10 (schrijf 0 overdracht 1), 1+0+1=10 (schrijf 0 overdracht 1). Resultaat: 10001 (decimaal: 11+6=17)
Aftrekken in hardware wordt typisch uitgevoerd door het twee's complement van het aftrekken getal toe te voegen. Om A−B te berekenen, berekent de processor A + (−B), waar −B het twee's complement van B is. Dit maakt het mogelijk om een enkelvoudig adder circuit te gebruiken voor zowel optellen als aftrekken.
Bitwise Operaties
Programmeertalen bieden bitwise operatoren die individuele bits manipuleren. Deze zijn fundamenteel voor laag niveau programmeren, embedded systemen en prestatie optimalisatie:
| Operatie | Symbool | Forbeeld (8-bits) | Resultaat | Gebruikgeval |
|---|---|---|---|---|
| EN | & | 10110101 & 11110000 | 10110000 | Maskeren van bits, het extraheren van velden |
| OF | | | 10110101 | 00001111 | 10111111 | Bits instellen, vlaggen combineren |
| XOR | ^ | 10110101 ^ 11111111 | 01001010 | Toggelen van bits, eenvoudige encryptie |
| NOT | ~ | ~10110101 | 01001010 | Bit inversie |
| Links verschuiven | << | 00000101 << 2 | 00010100 | Vermenigvuldigen met 2ⁿ |
| Rechts verschuiven | >> | 00010100 >> 2 | 00000101 | Delgeren door 2ⁿ |
Bit verschuiven is aanzienlijk sneller dan vermenigvuldigen/delen in veel processors. x << 1 is gelijk aan x × 2, en x >> 1 is gelijk aan x ÷ 2 (gehele deling). Game engines en embedded firmware gebruiken deze operaties uitgebreid voor prestaties.
Binair-Gecodeerde Decimaal (BCD)
Binair-Gecodeerde Decimaal vertegenwoordigt elk decimaal cijfer met zijn eigen 4-bits binair patroon. In tegenstelling tot zuiver binair, bewaart BCD de decimale structuur:
| Decimaal | Pure Binair | BCD |
|---|---|---|
| 0 | 0000 | 0000 |
| 5 | 0101 | 0101 |
| 9 | 1001 | 1001 |
| 10 | 1010 | 0001 0000 |
| 42 | 101010 | 0100 0010 |
| 99 | 1100011 | 1001 1001 |
| 255 | 11111111 | 0010 0101 0101 |
BCD is minder ruimte-efficiënt dan zuiver binair (10 van de 16 mogelijke 4-bits combinaties worden gebruikt), maar het vereenvoudigt decimale weergave — elk nibble wordt rechtstreeks gemapt naar een weergegeven cijfer. BCD wordt gebruikt in digitale klokken, rekenmachines, financiële systemen (waar exacte decimale vertegenwoordiging belangrijk is) en oude mainframe databases (COBOL, IBM EBCDIC).
Floatende Puntencijfers (IEEE 754)
Decimale getallen met fractiedelen (zoals 3,14) worden in binair opgeslagen volgens het IEEE 754-standaard. Een 32-bits (single-precision) float heeft drie delen:
| Veld | Bits | Doel |
|---|---|---|
| Teken | 1 | 0 = positief, 1 = negatief |
| Exponent | 8 | Geëxtrapoleerd exponent (bias = 127) |
| Mantissa (significand) | 23 | Fractiedeel (impliciete leidende 1) |
Forbeeld: Het decimale getal −6,5 in IEEE 754 single-precision:
- Teeken = 1 (negatief)
- 6,5 in binair = 110,1₂ = 1,101 × 2² (normaliseerd)
- Exponent = 2 + 127 (bias) = 129 = 10000001₂
- Mantissa = 10100000000000000000000 (23 bits, impliciete leidende 1 weggelaten)
- Volledige representatie: 1 10000001 10100000000000000000000
Dit is waarom 0,1 + 0,2 ≠ 0,3 in de meeste programmeertalen — de decimale fractie 0,1 heeft een oneindige herhalende representatie in binair (zoals 1/3 in decimaal = 0,333…), dus moet het worden afgerond, wat kleine fouten introduceert. Voor financiële berekeningen, gebruik decimal arithmetische bibliotheken (Python's decimal module, Java's BigDecimal) in plaats van float.
Character Encoding: Van ASCII naar UTF-8
Tekst wordt opgeslagen als binair getallen die zijn gekoppeld aan tekens. De evolutie van karaktercodering weerspiegelt de wereldwijde uitbreiding van de computer:
| Codering | Jaar | Bits per Tekenaar | Tekens ondersteund | Opmerkingen |
|---|---|---|---|---|
| ASCII | 1963 | 7 (opgeslagen in 8) | 128 | Engelse letters, cijfers, interpunctatie |
| Extended ASCII (ISO 8859-1) | 1987 | 8 | 256 | Westerse Europese tekens (é, ñ, ü) |
| UTF-8 | 1993 | 8–32 (variabel) | 1.112.064 | Backward-compatibel met ASCII; webstandaard |
| UTF-16 | 1996 | 16–32 (variabel) | 1.112.064 | Gebruikt in Java, Windows, JavaScript intern |
| UTF-32 | 2000 | 32 (vast) | 1.112.064 | Vast breedte; verbruikt ruimte voor Latijnse tekst |
UTF-8 codeert ASCII-tekens in een enkel byte (identiek aan gewoon ASCII), Europese tekens in 2 bytes, CJK-tekens in 3 bytes en emoji in 4 bytes. Meer dan 98% van alle webpagina's gebruikt UTF-8 codering (volgens W3Techs, 2024).
Binair Logische Poorten
Logische poorten zijn de fysieke bouwblokken van alle digitale circuits. Elke poort voert een eenvoudige binair operatie uit op één of twee invoerbits:
| Poort | Symbool | Waarden van de waarheid (A,B → Uitvoer) | Beschrijving |
|---|---|---|---|
| EN | A·B | 0,0→0; 0,1→0; 1,0→0; 1,1→1 | Uitvoer is 1 alleen als beide invoerbits 1 zijn |
| OF | A+B | 0,0→0; 0,1→1; 1,0→1; 1,1→1 | Uitvoer is 1 als ten minste één invoerbit 1 is |
| NIET | ¬A | 0→1; 1→0 | Inverteert de invoer |
| NAND | ¬(A·B) | 0,0→1; 0,1→1; 1,0→1; 1,1→0 | EN gevolgd door NIET — universele poort |
| XOR | A⊕B | 0,0→0; 0,1→1; 1,0→1; 1,1→0 | Uitvoer is 1 als de invoerbits verschillen |
De NAND-poort wordt een universele poort genoemd omdat elke andere logische functie kan worden opgebouwd met alleen NAND-poorten. Moderne CPUs bevatten miljarden transistors die zijn samengevoegd tot NAND- en NOR-poorten, die vervolgens worden gecombineerd tot adders, multiplexers, flip-flops en alle andere bouwblokken van een processor. De Apple M3-chip bevat ongeveer 25 miljard transistors — elk een microscopisch binair schakelaar die 1 is (aan) of 0 (uit).
De XOR-poort heeft een speciale eigenschap: het geeft 1 uit wanneer de twee invoerbits verschillen. Dit maakt het de basis van binair optellen (de sombit van een half adder), foutdetectie (pariteitcontrole) en eenvoudige encryptie (XOR-cijfer).
Geschiedenis van Binary: Van Leibniz tot Moderne Rekenmachines
De binair systeem heeft een rijke intellectuele geschiedenis:
| Jaar | Person/Gebeurtenis | Contributie |
|---|---|---|
| ~300 BC | Pingala (Indische wiskundige) | Gebruikte een binair systeem om poëtische meters te classificeren |
| 1679 | Gottfried Leibniz | Formeel beschreef de moderne binair rekenkunde; zag verbindingen met het Chinese I Ching |
| 1847 | George Boole | Publiceerde "The Mathematical Analysis of Logic" — Boolean algebra basis |
| 1937 | Claude Shannon (MIT thesis) | Toonde aan dat Boolean algebra kon modeleren voor elektrische schakelcircuits |
| 1945 | John von Neumann | Voorgesteld een opslagprogrammabeheerde binair computerarchitectuur (von Neumann-architectuur) |
| 1971 | Intel 4004 | Eerste commerciële microprocessor — 2.300 transistors, 4-bits binair |
| 2024 | Moderne CPUs | Billioenen transistors; 64-bits binair architectuur standaard |
Leibniz' inzicht dat alle getallen konden worden uitgedrukt met alleen 0 en 1 was puur wiskundig — hij had nooit elektronische computers voor ogen. Shannons 1937 masterproef verbond Boolean (binair) logica met elektrische relais, creëerde de theoretische basis voor alle digitale elektronica. Het is genoemd "misschien wel het belangrijkste masterproef van de twintigste eeuw."
Binair in Netwerken: IP-adressen en Subnetmasks
Omgaan met binair is essentieel voor netwerkbeheer. IPv4-adressen en subnetmasks zijn 32-bits binair getallen:
| Beschrijving | Puntkomma Decimaal | Binair |
|---|---|---|
| IP-adres | 192.168.1.100 | 11000000.10101000.00000001.01100100 |
| Subnetmask (/24) | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| Netwerkadres | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
| Uitzendadres | 192.168.1.255 | 11000000.10101000.00000001.11111111 |
Het netwerkadres wordt berekend door het IP-adres met de subnetmask te ANDen. Het uitzendadres zet alle hostbits op 1. Het aantal bruikbare hostadressen = 2^(32−prefix) − 2. Voor een /24-netwerk: 2⁸ − 2 = 254 bruikbare hosts.
Algemene subnetgroottes:
| CIDR | Subnetmask | Hosts | Typische Toepassing |
|---|---|---|---|
| /32 | 255.255.255.255 | 1 | Enkelvoudig hostroute |
| /30 | 255.255.255.252 | 2 | Punt-naar-punt link |
| /24 | 255.255.255.0 | 254 | Standaard LAN |
| /16 | 255.255.0.0 | 65.534 | Grote campusnetwerk |
| /8 | 255.0.0.0 | 16.777.214 | Class A-toewijzing |
Veelgestelde Vragen
Hoe omvat ik binair 1100 naar decimaal?
1100 in binair: 1×8 + 1×4 + 0×2 + 0×1 = 8 + 4 = 12. Dus binair 1100 = decimaal 12.
Wat is 255 in binair?
255 in binair is 11111111 — alle acht bits zijn ingesteld op 1. Dit is de maximale waarde van een enkel byte en verschijnt in netwerken (subnetmask 255.255.255.0) en kleurenwaarden (volledig rood = 255, 0, 0).
Hoe omvat ik decimaal 100 naar binair?
Herhaalde malen delen door 2: 100÷2=50 R0, 50÷2=25 R0, 25÷2=12 R1, 12÷2=6 R0, 6÷2=3 R0, 3÷2=1 R1, 1÷2=0 R1. Lezen van overblijvende resten naar boven: 1100100₂. Controleer: 64+32+4 = 100. ✓
Wat is de verschillen tussen binair en hexadecimaal?
Binair gebruikt basis 2 (cijfers 0–1); hexadecimaal gebruikt basis 16 (cijfers 0–9, A–F). Hex is compacte afkorting voor binair — elk hexadecimaal cijfer vertegenwoordigt exact 4 binair bits. Voorbeeld: hex FF = binair 11111111 = decimaal 255.
Waarom gebruiken computers binair in plaats van decimaal?
Elektronische schakelingen zijn natuurlijk binair: een transistor is wel of niet (1) of uit (0), en spanning is wel of niet hoog. Decimaal zou 10 verschillende spanningniveaus vereisen, wat moeilijk te implementeren is in hardware. Binair is tolerant voor ruis en past perfect bij logische waar of onwaar-operaties.
Wat is tweecomplement?
Tweecomplement is de standaardmethode voor het weergeven van getallen met een teken (positief en negatief) in binair. Om het tweecomplement (negatief) van een getal te vinden: omkeren alle bits en voeg 1 toe. In een 8-bits systeem is +5 00000101, en −5 is 11111011. Het linkerste bit is het tekenbit: 0 = positief, 1 = negatief. Deze systeem maakt het mogelijk om hardware te gebruiken voor zowel optellen als aftrekken.
Hoe omvat ik binair naar hexadecimaal?
Groep de binair cijfers in sets van 4 van rechts naar links, en vervolgens omzetten naar elk groep. Voorbeeld: 10110101₂ → 1011 0101 → B5₁₆. De groepen zijn: 0000=0, 0001=1, 0010=2, ..., 1001=9, 1010=A, 1011=B, 1100=C, 1101=D, 1110=E, 1111=F.