Wikisage, de vrije encyclopedie van de tweede generatie, is digitaal erfgoed

Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.

  • Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
  • Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
rel=nofollow

Binair

Uit Wikisage
Naar navigatie springen Naar zoeken springen
De printervriendelijke versie wordt niet langer ondersteund en kan weergavefouten bevatten. Werk uw browserbladwijzers bij en gebruik de gewone afdrukfunctie van de browser.
  Getalsystemen   
Binair Decimaal
00000 0
00001 1
00010 2
00011 3
00100 4
00101 5
00110 6
00111 7
01000 8
01001 9
01010 10
01011 11
01100 12
01101 13
01110 14
01111 15
1 + 1 = 10 1 + 1 = 2
0101 × 0101 = 011001 5 × 5 = 25

Het binaire of tweetallige getalsysteem 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 genoemd.

In dit stelsel staat bijvoorbeeld 0110 voor het getal 6 in het decimale stelsel.

Omdat de geheugencellen van computers twee waarden kunnen aannemen, is er sprake van binaire voorstelling van de opgeslagen informatie. Daarom worden getallen in computers intern voorgesteld als binaire getallen. Voor de buitenwereld worden deze getallen vertaald naar het hexadecimale of het octale stelsel, 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 moeten kunnen zien, omdat octale en hexadecimale getallen gemakkelijk uit binaire getallen zijn 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.

Van binair naar decimaal

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 wordt 010101 16 + 4 + 1 = 21 in decimale waarden.

Eenvoudig omrekenen

Binaire getallen bij Gottfried Wilhelm Leibniz.
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 we hebben het binaire getal 001101010. We vullen dit in de tabel in. Bij elke 1 kijken we naar de waarde in de bovenste rij. Bij het voorbeeld zijn dit de waarden 64, 32, 8 en 2. Door deze op te tellen weten we hoeveel 001101010 in het tientalligstelsel is, namelijk 106. Het tweede voorbeeld - 100010000 - wordt dan 272.

Een andere methode bestaat erin om bij de eerste "1" links te starten en het volgende algoritme toe te passen. We onthouden 1 en schuiven een plaats naar rechts. Hiervoor doen we 1 × 2 = 2 en onthouden 2. We komen op het tweede cijfer terecht. Is dit 0 dan doen we 2 × 0 = 0 en schuiven een plaats op naar rechts. Hiervoor doen we 2 × 2 = 4. Was het tweede cijfer 1 dan deden we 2 + 1 = 3 en schuiven we een plaats naar rechts. Hiervoor doen we 3 × 2 = 6. Deze methode wordt verder toegepast tot het einde der cijfers. Toegepast op het binaire getal 001101010 geeft dit: 1 wordt 1 plaats naar rechts geschoven en wordt 2; 2 + 1 = 3 en wordt naar rechts verschoven en wordt 6; 6 + 0 = 0 en wordt naar rechts verschoven en wordt 12; 12 + 1 = 13 en wordt naar rechts verschoven en wordt 26; 26 + 0 = 26 en wordt naar rechts verschoven en wordt 52; 52 + 1 = 53 en wordt naar rechts verschoven en wordt 106. Er zijn verder geen cijfers meer en we komen dus uit op 106.

Andersom is iets moeilijker. Stel we willen het getal 57 omzetten. Dan zoeken we eerst het grootste getal in de bovenste rij dat kleiner is dan of gelijk aan 57, namelijk 32. Op die plek zetten we al een 1. Dit wordt dan (000)100000. Dan trekken we 32 van 57 af, dat wordt 25. Voor dit getal zoeken we weer het grootste getal in de bovenste rij dat kleiner is dan of gelijk aan 25, namelijk 16. Ook voor de 16 zetten we een 1, dus (000)110000. We trekken 16 van 25 af, dat wordt 9. We zoeken weer het grootste getal in de bovenste rij dat kleiner is dan of gelijk aan 9, namelijk 8. Voor deze zetten we weer een 1. (000)111000. 9 - 8 = 1. Nu hoeven we niet verder te zoeken, want de 1 is makkelijk gevonden. Ook deze wordt toegevoegd. Zo hebben we relatief eenvoudig berekend dat 57 binair 000111001 ofwel 111001 is.

Eenvoudiger kan ook op de volgende manier. We beginnen het binaire getal van rechts naar links te noteren. Is het getal oneven dan legt men rechts een 1 neer. We trekken van het oorspronkelijke getal 1 af en gaan één plaats naar links door het overblijvende getal te delen door 2. Is dit getal oneven dan legt men op de tweede plaats van rechts te beginnen een 1 neer. In het andere geval een 0. We trekken respectievelijk 1 of 0 af van het getal en gaan verder een plaats naar links door dit getal te delen door 2.

Toegepast op 57 geeft dit het volgende. 57 is oneven en we schrijven rechts een 1. 57 - 1 = 56, we schuiven een plaats naar links op en delen hiervoor 56 door 2 en dit geeft 28. 28 is even en we schrijven dus een 0 (de twee laatste cijfers van de binaire notatie zijn reeds bekend: 01). We schuiven de overblijvende 28 een plaats naar links en delen hiervoor 28 door 2 en dit geeft 14. 14 is even en we schrijven dus een 0 (de drie laatste cijfers van de binaire notatie zijn reeds bekend: 001). We schuiven de overblijvende 14 een plaats naar links en delen hiervoor 14 door 2 en dit geeft 7. 7 is oneven en we schrijven dus een 1 (de vier laatste cijfers van de binaire notatie zijn reeds bekend: 1001). 7 - 1 = 6, we schuiven een plaats naar links op en delen hiervoor 6 door 2 en dit geeft 3. 3 is oneven en we schrijven dus een 1 (de vijf laatste cijfers van de binaire notatie zijn reeds bekend: 11001). 3 - 1 = 2, we schuiven een plaats naar links op en delen hiervoor 2 door 2 en dit geeft 1. 1 is oneven en we schrijven dus een 1 (de zes cijfers van de binaire notatie zijn bekend: 111001).

Berekenen via de computer

De volgende code in Java kan gebruikt worden om met een decimaal getal een binaire weergave van dat getal te maken. <source lang=java> public class BinairOmzetten {

public static void main(String[] args) {
System.out.println("15 --> " + getBinary(15)); //1111
System.out.println("50 --> " + getBinary(50)); //110010
System.out.println("200 --> " + getBinary(200)); //11001000
// Of gebruik de ingebouwde functionaliteit Integer.toBinaryString(int i)
}
public static String getBinary(int n) // Werkt alleen voor positieve getallen
{
if(n==0)
return "0";
else if(n==1)
return "1";
else
return getBinary(n>>1)+(n&1);
}

} </source>

Andere coderingen

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.

Trivia

„There are 10 kinds of people; those who can count binary and those who can’t” is een bekend grapje.

Vertaald:

„Er zijn 10 soorten mensen: Mensen die binair kunnen tellen en mensen die dat niet kunnen.”
10 is dan natuurlijk binair voor het decimale 2.

Zie ook

Alle pagina's die met Binair beginnen