• Non ci sono risultati.

06AZN - Fondamenti di Informatica (GES, LOP, ORG) - esercitazione del 24/9/08 - v. 1.04 Esercizio 1 Effettuare i seguenti cambiamenti di codifica su numeri naturali: • 123

N/A
N/A
Protected

Academic year: 2021

Condividi "06AZN - Fondamenti di Informatica (GES, LOP, ORG) - esercitazione del 24/9/08 - v. 1.04 Esercizio 1 Effettuare i seguenti cambiamenti di codifica su numeri naturali: • 123"

Copied!
4
0
0

Testo completo

(1)

06AZN - Fondamenti di Informatica (GES, LOP, ORG) - esercitazione del 24/9/08 - v. 1.04

Esercizio 1

Effettuare i seguenti cambiamenti di codifica su numeri naturali:

• 12310 = x2 [11110112 ]

• 0111012 = x10 [2910]

• 2310 = x5 [4435 ]

• 1235 = x10 [3810]

• 12310 = xH [7B16]

• A1H = x10 [16110]

• 91H = xQ [2218 ]

• 12310 = xBCD [000100100011BCD]

• 10010110BCD = x10 [9610]

• 10100110BCD = x10 [ impossibile: 1010 non `e una cifra valida in BCD ]

• 10010110BCD = x2 [11000002 ]

Esercizio 2

Effettuare i seguenti cambiamenti di codifica su numeri relativi considerando numeri binari da 6 bit:

• +1310 = xM S [001101M S ]

• -1310 = xM S [101101M S ]

• +3210 = xM S [ non rappresentabile in codifica MS su 6 bit ]

• -3210 = xM S [ non rappresentabile in codifica MS su 6 bit ]

• +1310 = xCA2 [001101CA2]

• -1310 = xCA2 [110011CA2]

• +3210 = xCA2 [ non rappresentabile in codifica CA2 su 6 bit ]

• -3210 = xCA2 [100000CA2]

• 010001M S = x10 [+1710]

• 010001CA2 = x10 [+1710]

• 100001M S = x10 [ −110]

• 100001CA2 = x10 [ −3110]

1

(2)

06AZN - Fondamenti di Informatica (GES, LOP, ORG) - esercitazione del 24/9/08 - v. 1.04

Esercizio 3

Effettuare le seguenti operazioni considerando numeri binari da 6 bit ed indicando sempre se si `e verificato errore e di quale tipo:

• (binario puro)010101 + 000111 [011100, ok ]

• (binario puro)010101 + 010001 [100110, ok ]

• (binario puro)010101 - 000111 [001110, ok ]

• (binario puro)010101 - 011001 [111100, overflow: borrow su MSB ]

• (CA2)010101 + 000111 [011100, ok ]

• (CA2)010101 + 010001 [100110, overflow: cambio di segno ]

• (CA2)010101 - 000111 [001110, ok ]

• (CA2)010101 - 011001 [111100, ok ]

• (binario puro)010101  1 [101010, ok ]

• (binario puro)010101  2 [010100, overflow: scarto di un bit a 1 ]

• (binario puro)110101  1 [011010, troncamento: scarto di un bit a 1 ]

• (CA2)001101  1 [011010, ok ]

• (CA2)010101  1 [101010, overflow: cambio di segno ]

• (CA2)010101  2 [010100, overflow: cambio di segno al primo passo ]

• (CA2)110101  1 [111010, troncamento: scarto di un bit a 1 ] Esercizio 4

Indicare la precisione assoluta e relativa dei seguenti numeri decimali:

n10 = 15 30 15.0 30.0 15.4 15.44

10(n) = [ 1 ] [ 1 ] [ 0.1 ] [ 0.1 ] [ 0.1 ] [ 0.01 ] η10(n) = [ 6.7% ] [ 3.3% ] [ 0.67% ] [ 0.33% ] [ 0.65% ] [ 0.065% ]

Esercizio 5

Indicare la precisione assoluta binaria e decimale dei seguenti numeri binari:

n2 = 0 10 1.1 1.01 1.001 1.0001

2(n) = [ 1 ] [ 1 ] [ 1/2 ] [ 1/4 ] [ 1/8 ] [ 1/16 ]

10(n) = [ 1 ] [ 1 ] [ 1 ] [ 1 ] [ 1 ] [ 0.1 ]

Esercizio 6

Effettuare le seguenti conversioni in binario puro con la precisione decimale indicata:

• 0.910 = x2 ( = 0.1) [0.11102 ]

• 12.510= x2 ( = 0.01) [1100.10000002 ]

• 12.6310= x2 ( = 0.001) [1100.10100001012 ]

2

(3)

06AZN - Fondamenti di Informatica (GES, LOP, ORG) - esercitazione del 24/9/08 - v. 1.04

Esercizio 7

Effettuare la seguenti conversioni mantenendo la stessa precisione assoluta:

• 10.0112 = x10 [210]

• 10.01102 = x10 [2.310]

• 0.01010010002 = x10 [0.32010]

Esercizio 8

Discutere applicabilit`a, vantaggi e svantaggi delle seguenti codifiche nel caso di un sensore digitale di temperatura che deve operare nel campo -20. . . +44 C:

• numeri da 6 bit in binario puro, MS, CA2

• numeri da 8 bit in binario puro, MS, CA2

[ L’esercizio richiede di codificare 65 temperature diverse (20 negative, 44 positive e la temperatura zero).

Poich´e con numeri da 6 bit si possono codificare al pi`u26(ossia 64) oggetti diversi, ne consegue che non si pu`o usare nessuna codifica basata su 6 bit.

Le tre codifiche su 8 bit possono invece tutte essere teoricamente utilizzate perch´e in grado di rappre- sentare28 (ossia 256) oggetti diversi.

La codifica in complemento a due su 8 bit `e quella pi`u diretta perch´e `e in grado di rappresentare tutti i numeri interi relativi nell’intervallo:

−28−1. . . + 28−11 ossia − 128 . . . + 127

Le operazioni di codifica e decodifica sono per`o complesse ed il loro prezzo `e pi`u facilmente giustifi- cabile se poi si dovessero svolgere dei calcoli sulle temperature (es. calcolo della media).

La codifica in modulo e segno su 8 bit `e in grado di rappresentare tutti i numeri interi relativi nell’intervallo:

−28−1−1 . . . + 28−11 ossia − 127 . . . + 127

Le operazioni di codifica e decodifica sono semplici ma si deve fare attenzione al doppio zero (+0 e

0). Nel caso si debbano svolgere dei calcoli sulle temperature (es. calcolo della media) allora `e da sconsigliare perch´e le operazioni aritmetiche su questa codifica spono complesse.

La codifica in binario puro su 8 bit `e in grado di rappresentare tutti i numeri interi nell’intervallo:

0 . . . 28−1 ossia 0 . . . 255

Non pu`o quindi essere usata direttamente per rappresentare le temperature indicate ma sarebbe necessario effettuare una codifica “eccesso 20” ossia:

n(T ) = T + 20

oveT `e la temperatura registrata e n il numero che la rappresenta. A seguito di questa codifica anche le eventuali operazioni aritmetiche che si dovessero svolgere diventerebbero semplici (perch´e svolte su numeri interi positivi). ]

3

(4)

06AZN - Fondamenti di Informatica (GES, LOP, ORG) - esercitazione del 24/9/08 - v. 1.04

Esercizio 9

Spiegare qual `e il potenziale vantaggio di una codifica BCD per numeri reali frazionari rispetto ad una codifica floating-point.

[ La codifica BCD permette di codificare in modo esatto i numeri decimali frazionari, senza alcun errore di rappresentazione. ]

Esercizio 10

Convertire il numero decimale −3.25 in binario con le codifiche specificate, indicando anche la precisione assoluta decimale del numero binario risultante:

• binario fixed-point CA2 4I + 4F [1100 1100,  = 10−1 ]

• binario floating-point IEEE-754 SP [1 10000000 10100000000000000000000,  = 10−6 ] Esercizio 11

Per ciascuna delle seguenti codifiche binarie, indicare l’intervallo di valori numerici rappresentabile (in modo naturale, senza particolari ipotesi o accorgimenti) e la precisione assoluta:

• binario puro su 6 bit [0 . . . 63,  = 1 ]

• modulo e segno su 6 bit [ −31 . . . + 31,  = 1 ]

• complemento a due su 6 bit [ −32 . . . + 31,  = 1 ]

• BCD su 12 bit [0 . . . 999,  = 1 ]

• fixed-point 6I + 3F [0 . . . 63.875, 10= 1, 2 = 1/8 ]

• fixed-point complemento a due 6I + 3F [ −32 . . . + 31.875, 10= 1, 2 = 1/8 ]

• codice eccesso 16 su 8 bit [ −16 . . . 239,  = 1 ]

Esercizio 12

Indicare le basi in cui valgono le seguenti uguaglianze:

• 201x+ 33x = 351x [ nessuna base ]

• 201z−33z = 135z [7 ]

Esercizio 13

Convertire in formato IEEE-754 SP i seguenti numeri decimali:

• −7 [1 10000001 11000000000000000000000 ]

• +3.54 · 10−3 [0 01110110 11001111111111101011000 ]

Esercizio 14

Convertire in decimale i seguenti numeri binari in formato IEEE-754 SP, esprimendo il risultato in forma esponenziale ingegneristica con la stessa precisione del numero binario:

• 01101100001010000000000000000000 [+812.3981 · 1024]

• 10000111100000000000000000000000 [ −192.5930 · 10−36]

• 01111111100000000000000000000000 [+∞ ]

4

Riferimenti

Documenti correlati

Scrivere un programma in linguaggio C che chieda all’utente le coordinate di un punto nel piano Cartesiano XY e quindi determini se tale punto appartiene all’area del rettangolo

Scrivere un programma in linguaggio C che legga tutti i caratteri in input, fermandosi non appena incontra un carattere punto, punto esclamativo o punto interrogativo, e quindi

La presente esercitazione presuppone conoscenza delle seguenti parti del linguaggio C: main, return, commen- ti, variabili, identificatori, tipi scalari, assegnazione,

Scrivere un programma in linguaggio C che richieda e legga un numero intero N (minore di 100) e quindi presenti in output una tabella avente in prima colonna un numero intero (da 1

Scrivere un programma in linguaggio C che riceva un numero non noto a priori di parametri da riga di comando e, per ognuno di essi, dica se si tratta di un numero intero.. Ad

Scrivere un programma in linguaggio C che legga valori di temperatura (uno per riga finch´e ce ne sono) in gradi Fahrenheit e ne restituisca il valore in gradi Celsius.. Per

Scrivere un programma in linguaggio C che riceva come primo parametro da riga di comando un numero di riga N del file PARC.txt (contenente due parole per riga) e dica se la

Successivamente il programma riceve su standard input dei numeri interi, uno per riga, e per ciascun numero introdotto deve indicare se esso `e presente o meno fra i valori