Oplossingen van de opgaven van hoofdstuk 2


  1. 0x1234 in binaire code. Oplossing: elk hexadecimaal cijfer stelt vier bits voor. Wanneer we cijfer voor cijfer omzetten krijgen we: 0001 0010 0011 0100. Het gevraagde binaire getal is dus 1001000110100 als we de eerste drie nullen (die toch niet bijdragen aan het getal) niet opschrijven.

  2. 0x1234 in het decimale stelsel Oplossing: binair hebben we 0001001000110100 (zie vorige opgave). Schrijven we dit als machten van twee dan vinden we:

    212+29+25+24+22 = 4096 + 512 + 32 + 16 + 4 = 4660

  3. 10110111 decimaal. Oplossing:

    27+25+24+22+21+20 = 128 + 32 + 16 + 4 + 2 + 1= 183

  4. 10110111 decimaal als het een 2-complement getal is van acht bits. Aangezien het hoogste bit 1 is is dit een negatief getal. We zoeken eerst de positieve tegenhanger met andere woorden we nemen het 2-complement. stap 1: bit inverteren levert 01001000, stap 2: tel er 1 bij op geeft 01001001. Het binaire getal 01001001 blijkt 73 te zijn als we dit uitschrijven als tweemachten en de resultaten optellen. Dit is dus het positieve getal. Het gevraagde negatieve getal is -73

  5. het decimale getal 2000 omzetten naar binair en hexadecimaal. Oplossing: We zoeken de hoogste macht van twee die nog kleiner is dan 2000. Dit blijkt 210 ofwel 1024 te zijn. Trekken we dit van 2000 af dan vinden we 976. De hoogste twee-macht die hier nog inpast is 29 = 512. Als we ook deze tweemacht van 976 aftrekken vinden we 464. Hier past weer de tweemacht 28 met de waarde 256 in. Trekken we 256 af van 464 dan houden we 208 over. Hier past de tweemacht 27 = 128 in. trekken we dit weer af van 208 dan houden we 80 over. De tweemacht 26 = 64 pas hierin met als resultaat dat we 80-64= 16 overhouden. 16 blijk 24 te zijn en we hebben 2000 geheel in tweemachten geschreven. Het resultaat is:

    2000 = 210 + 29 + 28 + 27 + 26 + 24

    De gevraagde binaire weergave vinden we als volgt: voor elke tweemacht beginnend achteraan met 20 noteren we een 0 als de tweemacht niet gebruikt wordt en een 1 als de tweemacht wel gebruikt wordt. Het resultaat is:

    11111010000

    Hexadecimaal beginnen we ook achteraan en nemen steeds groepjes van 4 bits. Van elk groepje schrijven we de overeenkomstige hexadecimale code. Aan het voorste groepje bits kunnen we eventueel wat nullen aan vooraf laten gaan om een groepje van vier bits te krijgen we vinden dan 0111 1101 0000 (we hebben vooraan een 0 toegevoegd). In hexadecimale notatie is dit:

    0x7D0

  6. Hallo in ASCII. We raadplegen de ASCII-tabel en vinden:

    H = 1001000
    a = 1100001
    l = 1101100
    l = 1101100
    o = 1101111

    Voegen we aan deze codes nog een even-pariteitsbit toe (aan de voorkant) Dan krijgen we

    H = 01001000
    a = 11100001
    l = 01101100
    l = 01101100
    o = 01101111

  7. Het getal 0,5625 in 32 bits floating point formaat. We schrijven dit getal als machten van twee. We vinden dan:

    0,5625 = 0.5 + 0.0625 = 1/2 + 1/16

    Dit zijn alleen negatieve machten We zouden dit getal binair kunnen schrijven als:

    0,1001

    Dit is nog niet de notatie die we zoeken. We gaan eerst normaliseren.

    1,001 2-1

    Passen we de regels nu toe dan vinden we voor het tekenbit 0 (positief getal) de exponent is -1, hier tellen we 127 bij op en vinden dus 126. De mantisse mist de 1 voor de komma. We vinden dan:

    0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0