Loading AI tools
talstelsel met grondtal twee Van Wikipedia, de vrije encyclopedie
Het binaire talstelsel of tweetallig talstelsel is een positiestelsel, waarin een getal wordt voorgesteld door een rijtje van de cijfers 0 en 1. Een dergelijk cijfer wordt in deze context een bit ("binary digit") genoemd.
In het binaire talstelsel komt iedere positie overeen met een macht van 2. Een binair getal wordt voorgesteld door een rij bits:
met de betekenis:
In het binaire talstelsel is bijvoorbeeld het getal 0101 de voorstelling van het getal 5 (= 0 + 4 + 0 + 1) in het decimale stelsel.
Bij geautomatiseerde opslag en communicatie van gegevens (zoals binnen en tussen computers in de ruime zin van het woord) worden deze meestal binair gecodeerd, dat wil zeggen als een reeks bits. Voor betere leesbaarheid wordt zo'n reeks bits vaak weergegeven in het hexadecimale of het octale talstelsel, die beide nauw verwant zijn met het binaire. Zie ook BCD-code, als een tussenvorm tussen decimaal en binair.
Het octale en hexadecimale stelsel worden door computerprogrammeurs gebruikt bij taken waarbij ze de bitconfiguratie van het getal willen zien, omdat er direct hardware aangesproken wordt. In de hardware bestaat informatie uitsluitend in de vorm van reeksen enen en nullen.
Octale en hexadecimale getallen zijn uit binaire getallen af te leiden, namelijk door de binaire cijfers in groepjes van 3 (octaal) of 4 (hexadecimaal) te verdelen en deze groepjes van 3 respectievelijk 4 binaire cijfers steeds tot één octaal respectievelijk hexadecimaal cijfer om te zetten. Dit principe geldt voor alle getalstelsels waarvan het aantal cijfers een macht van twee is.
Om een binair getal te vertalen naar een decimaal getal, hoeft men slechts te kijken naar de posities waar een 1 staat. Voor ieder binair cijfer 1 berekent men de door de positie van dit cijfer aangegeven macht van twee, en wel: 2positie − 1. De som van de op deze wijze berekende reeks decimale getallen geeft de waarde van het binaire getal decimaal weer. De eerste positie is de meest rechtse en komt overeen met het getal 1. De tweede positie, de tweede van rechts, komt overeen met het getal 2, de derde van rechts met 4, enz.
Binair | 2(positie van de 1) − 1 | Decimaal | Binair | 2(positie van de 1) − 1 | Decimaal |
---|---|---|---|---|---|
100000 | 25 | 32 | |||
010000 | 24 | 16 | 010000 | 24 | 16 |
001000 | 23 | 8 | |||
000100 | 22 | 4 | 000100 | 22 | 4 |
000010 | 21 | 2 | |||
000001 | 20 | 1 | 000001 | 20 | 1 |
111111 | 25+24+23+22+21+20 | 63 | 010101 | 24+22+20 | 21 |
Simpel gezegd: bereken voor elk cijfer 1 in het binaire getal, de overeenkomstige macht van 2. Een binair getal van 6 cijfers, bijvoorbeeld 111111, wordt vertaald in (van links naar rechts) 32, 16, 8, 4, 2 en 1. De som 32 + 16 + 8 + 4 + 2 + 1 = 63 is de decimale waarde van dit binaire getal. Zo heeft het binaire getal 010101 de decimale waarde 16 + 4 + 1 = 21
Voor cijfers achter de komma zijn de machten negatief.
Binair | 2(positie van de 1) − 1 | Decimaal | Binair | 2(positie van de 1) − 1 | Decimaal |
---|---|---|---|---|---|
0,10000 | 2−1 | 0,50000 | |||
0,01000 | 2−2 | 0,25000 | 0,01000 | 2−2 | 0,2500 |
0,00100 | 2−3 | 0,12500 | |||
0,00010 | 2−4 | 0,06250 | 0,00010 | 2−4 | 0,0625 |
0,00001 | 2−5 | 0,03125 | |||
0,11111 | 2−1+2−2+2−3+2−4+2−5 | 0,96875 | 0,01010 | 2−2+2−4 | 0,3125 |
In | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | Uit |
---|---|---|---|---|---|---|---|---|---|---|
001101010 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | =106 |
+64 | +32 | +8 | +2 | |||||||
100010000 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | =272 |
+256 | +16 | |||||||||
57 | −32 | −16 | −8 | 0 | 0 | −1 | =111001 | |||
1 | 1 | 1 | 0 | 0 | 1 |
Bovenstaande tabel is een eenvoudig hulpmiddel voor het omrekenen van binair naar tientallig en andersom. Stel er is het binaire getal 001101010. Vul dit in de tabel in en kijk naar de waarde in de bovenste rij. Bij het voorbeeld zijn dit de waarden 64, 32, 8 en 2. Door deze op te tellen is nu bekend hoeveel 001101010 in het tientalligstelsel is, namelijk 106. Het tweede voorbeeld - 100010000 - wordt dan 272.
Een andere methode gebruikt het hornerschema en bestaat erin de bijdragen van de machten van 2 van links naar rechts successievelijk te berekenen. Start bij de meest linkse "1" en pas het volgende algoritme toe. Vermenigvuldig met 2 en tel het volgende cijfer erbij op. Herhaal deze stap tot het laatste cijfer. Toegepast op het binaire getal 001101010 geeft dit:
Het binaire getal 001101010 = 106 (decimaal). Merk op dat het binaire getal verschijnt in de "kolom" voor de =-tekens.
Andersom kan de tabel ook gebruikt worden. Van het getal 57 wordt de binaire representatie gezocht. Zoek het grootste getal in de bovenste rij dat kleiner is dan of gelijk aan 57; dat is 32. Op die positie komt dus een 1. De rest is 57-32=25. Zoek weer het grootste getal in de bovenste rij dat kleiner is dan of gelijk aan 25; dat is 16. Op de positie 16 komt ook een 1. Bepaal weer de rest: 25-16=9. Het grootste getal in de bovenste rij dat kleiner is dan of gelijk aan 9 is 8. Zet een 1 op die positie. De test is 9-8=1. Ook daar komt een 1. Het resultaat is: 57=1110012.
Er is ook een methode die van laag naar hoog, dus van rechts naar links werkt. Schrijf een 1 als het getal oneven is en trek 1 van het getal af. Zet een 0 als het getal even is. Deel het resterende even getal door 2. Ga een positie naar links en herhaal de procedure.
Toegepast op 57 geeft dit het volgende.
De volgende code in Java kan gebruikt worden om een binaire weergave van een positief geheel getal te maken.
public class BinairOmzetten {
public static void main(String[] args) {
voorbeeld( 15); // 1111
voorbeeld( 50); // 110010
voorbeeld(200); // 11001000
// Of gebruik de ingebouwde functionaliteit Integer.toBinaryString(int i)
}
private static void voorbeeld(int n) {
System.out.println(n + " --> " + getBinary(n));
}
public static String getBinary(int n) {
final String r;
if (n == 0)
r = "0";
else if (n == 1)
r = "1";
else
r = getBinary(n >>> 1) + (n & 1);
return r;
}
}
De normale binaire codering gaat uit van "gewogen" posities. Hierbij wordt over het algemeen het 'big-endian' principe gebruikt, zie endianness.
De Gray-code is een manier van coderen waarbij van ieder opeenvolgend paar getallen slechts één enkele bit verschilt.
"Er zijn 10 soorten mensen: Mensen die binair kunnen tellen en mensen die dat niet kunnen." is een bekende inside joke.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.