Ongelmat ja niiden ratkaisut
1. Piirrä numeroviiva kokonaisluvuilla -10 - +10.
Ratkaisu:
2. Lisää seuraavat binääriluvut 8-bittiseen kahden komplementtiin: 1010102 ja 11112.
Ratkaisu:
3. Käytä vain kahden komplementin lähestymistapaa 8-bittisenä vähentääksesi binääriluku 11112 binääriluvusta 1010102.
Ratkaisu:
101010 8-bittisessä kahden komplementissa on 00101010.
1111 8-bitissä on 00001111.
Kääntämällä kaikki 00001111 8-bittisenä, saadaan 11110000.
Kun 1 lisätään 11110000:een, saadaan 11110001.
Kahden komplementin vähentäminen on kahden komplementin positiivisten ja negatiivisten lukujen lisääminen seuraavasti:
Viimeinen 1:n siirto heitetään pois kahden komplementin vähennyksellä.
5. Jaa 36,37510 luvulla 100010 desimaali- ja binäärimuodossa ja vertaa tuloksia.
Ratkaisu:
Jaon palauttamista käytetään.
Desimaalijako neljällä:
Vastaus on 36 10 loput 375 10 .
36,375 10 kokonaisluku on muutettava kantaluvuksi 2 seuraavasti:
Lukemalla loput alhaalta: 36 375 10 = 1000111000010111 2 .
1000 10 kokonaisluku on muutettava kantaluvuksi 2 seuraavasti:
Lukemalla loput alhaalta: 1000 10 = 1111101000 2 .
Seuraavaksi 1011000100110111 2 jakaa 1111101000 2 pitkällä jaolla (palauttamalla divisioona) vuodesta 36 375 10 = 1011000100110111 2 ja 1000 10 = 1111101000 2 (binäärijako kymmeneen bittiin):
Jako alkaa itse asiassa jaon yhdestoista bitistä, koska jaon kymmenen ensimmäistä bittiä on pienempi kuin jakaja. Vastaus on 100100 2 loput 101110111 2 .
Tulosten vertailua varten on nyt osoitettava, että osamäärän kokonaisluvut ovat yhtä suuret ja jäännökset yhtä suuret. Tämä tarkoittaa, että on osoitettava, että 36 10 = 100100 2 ja 375 10 = 101110111 2 .
6. Käytä valitsemaasi 8-bittiä havainnollistaaksesi loogista AND-, OR-, XOR-, Invert-, Shift Right-, Shift Left-, Rotate Right- ja Rotate Left -toimintoa. Jokaisessa tavussa tulee olla sekoitus ykkösiä ja nollia.
Ratkaisu:
- a) Kirjoita nollan ASCII-merkin numeerinen koodi heksadesimaali-, binääri- ja desimaalimuodossa.
b) Kirjoita ASCII-merkin '1' numerokoodi heksadesimaali-, binääri- ja desimaalimuodossa.
c) Kirjoita 'A':n ASCII-merkin numeerinen koodi heksadesimaali-, binääri- ja desimaalimuodossa.
d) Kirjoita 'a':n ASCII-merkin numeerinen koodi heksadesimaali-, binääri- ja desimaalilukuina.
Ratkaisu:
a) '0': 30, 00110000, 48
b) '1': 31, 00110001, 49
c) 'A': 41, 001000001, 65
d) 'a': 61, 001100001, 97
8. Muunna 49.4910 kakkospohjaksi. Muunna tuloksesi IEEE 32-bittiseen liukulukumuotoon.
Ratkaisu:
Lomakkeet 49.4910, 49 ja .49 muunnetaan eri tavalla perus 2:ksi.
Muunnetaan 49:
∴ 4910 = 1100012 luetaan viimeisen sarakkeen alaosasta.
Muunnetaan .49:
.49 x 2 = 0,98 ensimmäinen bitti on 0
.98 x 2 = 1,96 sekunnin bitti on 1
.96 x 2 = 1,92 kolmas bitti on 1
∴ .49 10 = 110 2 lue viimeisen sarakkeen yläosasta.
Eli 49,49 10 = 110001.110 2
110001.110 2 = 1,10001110 x 2 +5 perusmuodossa kaksi
'1.' 1,10001110 merkitsevässä eikä sitä ole ilmoitettu tuloksessa, mutta sen oletetaan olevan siellä.
Eksponentille 127 10 edustaa nollaa. Tämä tarkoittaa, että indeksi (teho) on 5 10 2:sta 5 lisätään 127:ään 10 . Tuo on:
127 10 + 5 10 = 132 10
132 10 on muutettava kantaluvuksi kaksi ja sovitettava sitten eksponentin kenttään.
Eli 132 10 = 10000100 2
10000100 2 on 7 bittiä. Eksponentti on kahdeksan bittiä. 10000100 2 siinä on kahdeksan bittiä ja se on kunnossa.
49,49 10 on positiivinen, joten etumerkkibitti on 0. 32-bittisessä liukulukumuodossa 49,49 10 = 110001.110 2 On:
0 10000100 100011100000000000000000
- a) Miten IEEE:n 64-bittinen liukulukumuoto eroaa 32-bittisestä muodosta?
b) Kerro kaksi toisiinsa liittyvää syytä, miksi 64-bittistä formaattia kuvataan kaksinkertaisena tai korkeampana tarkkuudella kuin 32-bittinen.
Ratkaisu:
- – Numeroa edustaa 64 bittiä, ei 32.
– Etumerkkibitin jälkeen eksponenttiluvulle on 11 bittiä.
– Eksponenttinumero nollaindeksille (2 0 ) on 1023 10 = 01111111111 2 .
– Yksitoista bittiä seuraa 52 bittiä eksplisiittistä merkitsevyyttä varten.
– Siinä on laajempi numeroalue kuin 32-bittisessä muodossa. - Syy, miksi 64-bittistä muotoa kuvataan kaksinkertaisena tai korkeampana tarkkuudella 32-bittiseen muotoon verrattuna, on se, että kahden peräkkäisen sekamurtoluvun välinen aikaväli, joka on rajattu kahdella peräkkäisellä kokonaisluvulla 64-bittisessä muodossa, on pienempi kuin vastaava. 32-bittinen muotoväli. Lisäksi kahden rajatun kokonaisluvun välillä on enemmän mahdollisia sekamurtolukuja 64-bittisessä muodossa kuin vastaavasti 32-bittisessä muodossa.