Om een positief geheel getal weer te geven, moeten we binair omzetten in decimaal. Dit doen we door de i-de bit te vermenigvuldigen met 2i. Dus het meest rechtse bit wordt vermenigvuldigd met 20, of 1, het op een na meest rechtse bit met 21 of 2, en het op twee na meest rechtse bit met 22 of 4, enzovoort.

Dus 1010 binair is: 1*23+ 0*22+1*21+0*20 = 8+0+2+0 = 10 decimaal

Een andere manier om het te zeggen: we beginnen bij het meest rechtse bit en gaan naar links, we kennen 1,2,4,8,16,32, enz. toe aan elk bit dat 1 is.
We kunnen ook een binair getal nemen en het omzetten naar binair. Een manier om dit te doen is de base-10 waarden van elk bit uit te schrijven tot je er een vindt die groter is dan het getal dat je probeert om te zetten. Dus voor het base-10 getal 155, zouden we de waarden uitschrijven die overeenkomen met de :
waarde: 256 128 64 32 16 8 4 2 1
Om 155 te krijgen, kunnen we de 256 bit niet laten zetten, maar wel een 128, dus zetten we daar een ‘1’.
waarde: 256 128 64 32 16 8 4 2 1
0 1
We hebben nog steeds 155-128=27 nodig. 64 en 32 zijn te groot, dus plaatsen we daar 0’s en zetten we een 1 op 16:
waarde: 256 128 64 32 16 8 4 2 1
0 1 0 1
We hebben nog steeds 155-128-16=11 nodig. Dus geven we een ‘1’ aan het cijfer met 8 waarden. We hebben er nog 3 nodig, dus zetten we een 0 in de 4-waarde, en 1-en in de 2-waarde en 1-waarde. Dit geeft ons het binaire getal:
waarde: 256 128 64 32 16 8 4 2 1
0 1 0 0 1 1 0 1
Dus 155 decimaal is gelijk aan 010011011 binair.
Integers krijgen over het algemeen 4 bytes (32 bits) toegewezen of op 64-bits computers vaak 8 bytes.
Voorstellen van Floats
Floating point getallen worden op dezelfde manier voorgesteld als gehele getallen, maar sommige bits zijn gereserveerd voor het fractionele deel van het getal. Daarom worden aan vlottende getallen over het algemeen meer bits toegewezen (bijv. 64 in plaats van 32).
Voorbeeld: Stel dat we een float zouden weergeven met 6 bits, waarvan de 2 meest rechtse het fractionele deel zijn. Wat zou dan de waarde zijn van:
101010?

Tekens en reeksen

Elk symbool op het toetsenbord – letters, cijfers, enz. – wordt intern in het geheugen van een computer weergegeven met een getal. We noemen dit karakters.
De toewijzingen tussen getallen en symbolen worden gedefinieerd in de ASCII-tabel: http://www.lookuptables.com/.
De toewijzingstabel stond bekend als de ASCII-tabel, of ASCII-code. Met ASCII werd elk symbool weergegeven met een getal tussen 0 en 255 (vraag: hoeveel bits zijn er nodig om zo’n getal op te slaan?)

Om niet Engels-centrisch te zijn, gebruiken moderne computersystemen nu Unicode, dat veel verschillende talen kan weergeven en extra bits nodig heeft om elk symbool weer te geven. Maar voor Engelse symbolen kan nog steeds de ASCII-tabel worden gebruikt om de waarde van elk symbool op te zoeken.
Een string is een opeenvolging van tekens, bijvoorbeeld ‘dog’. Intern slaan we voor elk teken het unicode-nummer op en een speciaal teken voor het einde van de tekenreeks. Dus het woord ‘hond’ is eigenlijk het unicode-nummer voor ‘d’, het unicode-nummer voor ‘o’ en het unicode-teken voor ‘g’, en tenslotte het teken aan het einde van de tekenreeks, dat ‘0’ is. “d” is 100 decimaal in de ASCII-tabel, dus “dog” wordt weergegeven met de volgende decimale getallen (opgeslagen in 16 bits elk):
100 111 103 0
Nummers worden over het algemeen opgeslagen als gehele getallen, zoals hierboven uitgelegd. Maar wanneer we invoer krijgen van de gebruiker of waarden weergeven, moeten we omgaan met getallen die worden weergegeven als een opeenvolging van cijfers. Net als letters zijn cijfers tekens. Het cijfer ‘0’ is het unicode-nummer 48 en ‘9’ is het unicode-nummer 57. De string ‘724’ wordt intern opgeslagen als: 55 50 52 0

Werkblad

1. Beschouw de volgende zestien bits:

0000 0000 0100 1101

a. Wat is de waarde van het getal als het een positief geheel getal (geheel getal) voorstelt?
b. Als de string van bits een symbool voorstelt, welk symbool is dat dan? Je kunt de ascii opzoektabel gebruiken http://www.lookuptables.com/

2. Computers hadden vroeger 64K geheugen. Wat is K? Is het een rond getal? Waarom werken informatici niet met mooie ronde getallen zoals 1000?
3. Wat is een megabyte? Een gigabyte? Wat is duizend gigabyte? Een miljoen gigabyte?
4. Laat zien hoe de volgende drie basis-10 getallen in binair worden weergegeven.

24 1025 43

5. Laat zien hoe ‘kat’ in bits wordt weergegeven?
6. Hoeveel mogelijke tekens kunnen worden weergegeven met unicode (16 bits)?
7. Wat is het grootste gehele getal dat kan worden weergegeven in 4 bytes, als we alleen positieve getallen beschouwen?
8. Als we ook negatieve getallen beschouwen, wat is dan het grootste gehele getal dat kan worden weergegeven met 4 bytes? Hoe denk je dat negatieve getallen worden gerepresenteerd?
9. Schrijf een python-functie die een reeks cijfers als parameter neemt en een geheel getal teruggeeft dat de base-10 waarde van die cijfers is, bijvoorbeeld, als de parameter “723” is, geeft de functie het gehele getal 723 terug (Ja, ik weet het, Python heeft een int-functie – je schrijft dat hier).
10. Schrijf een python functie die een string van base-10 cijfers als parameter neemt en een string van base-2 cijfers teruggeeft, zodat de base-2 cijfers de geconverteerde waarde zijn van de oorspronkelijke base-10 cijfers. Bijvoorbeeld, als “11” werd ingezonden, zou de functie “1011” teruggeven.
Werk de bovenstaande vragen uit met potlood en papier. Als je klaar bent, kun je hier je antwoorden op de binaire conversie controleren: http://mistupid.com/computers/binaryconv.htm
Hulp bij binaire omrekening:

Binaire Getallen van CSUNPLUGGED

Binaire Getallen in 60 Seconden

Reageren

Het e-mailadres wordt niet gepubliceerd.