Tietokoneen toiminta, Kevät 2011, Harjoitus 4
Nämä tehtävät tehdään etukäteen ja käsitellään harjoituksissa 4. kurssiviikolla 7.2. - 11.2.2011.
Harjoitukset pohjautuvat verkkoluentoihin 6 ja
7.
Jos haluatte mieluummin käyttää Authorware versioita, niin ne saa
verkkoluentojen koostesivulta.
Tehtävät:
- Kokonaisluvut. Oletetaan että kokonaisluku -13 on talletettu muistiin tavuosoitteeseen 0x1230. Mikä on tavujen 0x1230-0x1233 sisältö, kun kyseinen luku on talletettu seuraavissa esitysmuodoissa:
- 32 bittinen Big-Endian etumerkillinen (sign and magnitude)
- 32 bittinen Big-Endian kahden komplementti (two's complement)
- 16 bittinen Big-Endian kahden komplementti (two's complement)
- 8 bittinen Big-Endian kahden komplementti (two's complement)
- 16 bittinen Big-Endian 32767 vakiolisäys (biased by 32767)
- 32 bittinen Little-Endian kahden komplementti (two's complement)
- 8 bittinen Little-Endian kahden komplementti (two's complement)
- Liukuluvut.
- Anna esimerkki reaaliluvusta, jonka voi täsmälleen esittää liukulukuna.
- Anna esimerkki reaaliluvusta, jota ei voi täsmälleen esittää liukulukuna. Kuinka suuri on virhe?
- Mitä desimaalijärjestelmän lukua binääriluku 101101.1010 vastaa?
- Mikä on desimaaliluvun 5.1 IEEE liukulukustandardin mukainen esitys? Onko täsmällinen vai ei?
- Laske lausekkeiden "(1.0666668-1.0666666) * 1.23456" ja "1.0666668*1.23456 - 1.0666666*1.23456" arvot jollakin ohjemointikielellä, joka tukee 32 bittisiä IEEE liukulukuja. Sijoita jokin tulostuskäsky ensimmäisen lausekkeen keskelle ennen kertolaskua (esim. test.c), jotta kääntäjä ei optimoi koodia liikaa. Miksi tulokset ovat erilaisia? Kumpi on oikein? Miksi 64-bittisten IEEE liukulukujen (C:n tai Javan tietotyyppi double) käyttäminen poistaa eroavaisuuden?
- Hamming koodi.
- Näytä, miten virheenkorjaava Hamming-koodi havaitsee ja korjaa virheen
kun 7-bittisessä datassa "011 0100" kolmas bitti vasemmalta
lukien muuttuu virheelliseksi dataksi: "010 0100".
Näissä 7 bitissä on mukana sekä varsinainen data että tarkistusbitit.
- Montako piuhaa (johdinta, bittiä) tarvitaan 32-bittisen dataväylän
turvaamiseksi virheenkorjaavaa Hamming-koodia käyttäen?
(Haluamme siis pystyä kerralla siirtämään 32 bittiä todellista dataa
tarkistusbittien lisäksi)
- Miksi Hamming-koodin käyttö ei ole hyvä ratkaisu paikallisverkkojen
(LAN tai WAN) tiedonsiirron turvaamiseen?
- Tee tason C TitoTrainer tehtävät c-200, c-310, c-420 ja c-440.
(Voit samantien toki tehdä kaikki muutkin c-tason tehtävät.)
Tiina.Niklander@cs.helsinki.fi