Esercitazione 1 2014/15 - e-Learning

Transcript

Esercitazione 1 2014/15 - e-Learning
Esercitazione
E
i i
1
Codifica e Rappresentazione
dell’Informazione
Claudia Raibulet
[email protected]
E
Esercizio
i i 1
¾
Convertire
C
ti il numero decimale
d i l 99 in
i binario
bi i e poii
questo in esadecimale.
9910 = 11000112
9910 = 0x63 = 6316
Eserci io 2
Esercizio
¾
Convertire i seguenti numeri esadecimali in binario:
0x52
= 0101 00102
0x1010101 = 0001 0000 0001 0000 0001 0000 00012
0xF3B4C
= 1111 0011 1011 0100 11002
Esercizio 3
¾
¾
¾
Se il numero 100 in base dieci fosse rappresentato
in binario, quale sarebbe il valore del suo bit in
posizione 3 (ovvero 2^2)?
E nella posizione 5 (ovvero 2^4)?
Rispondere senza effetuare la conversione!
1, perchè 100 = 64 + 32 + 4 = 2
1
2^66 +2
+2^55 +2
+2^22
0, perchè 100 = 64 + 32 + 4 = 2^6 +2^5 +2^2
Esercizio 4
¾
Si chiede di effettuare le conversioni:
• Dal binario in ottale e esadecimale:
1100111011100112 = ?8 = ? 16
• Dall’esadecimale in ottale e binario:
0x71A916 = ?8 = ? 2
• Dall’ottale in esadecimale e binario:
7368 = ?16 = ? 2
Esercizio 5
¾
Convertire i seguenti numeri decimali in binario in
modulo e segno su 8 bit:
-20
20 =
-114 =
-59
59 =
33 =
10 =
1001 0100MS
11110010MS
1011 1011MS
0010 0001MS
0000 1010MS
Esercizio 6
¾
Convertire i seguenti numeri decimali in binario in
complemento a 2 su 8 bit:
-20 =
-114 =
-59 =
33 =
10 =
11101100CA2
10001110CA2
1100 0101CA2
0010 0001CA2
0000 1010CA2
Esercizio 7
¾
Date le seguenti coppie di rappresentazioni considerarle
prima
i in
i MS e poii in
i CA2;
CA2 per ciascuna
i
coppia
i sii
determini qual’è il maggiore tra i valori rappresentati:
a))
b)
c))
d)
01001
10110
101
11111
<?>
?
<?>
<?>
<?>
10001
11010
11101
10001
Esercizio 8
¾
Si chiede di calcolare la somma tra i seguenti
numeri in esadecimale:
0x789 + 0x987 = 0x1110
Soluzione:
9+7
= 16 -> 0 ((=16
16 - 16) con riporto 1
8+8+riporto 1 = 17 -> 1 (=17 – 16) con riporto 1
7+9+ riporto 1 = 17 ->
> 1 (=17 – 16) con riporto 1
riporto 1
T b ll ASCII – in
Tabella
i esadecimale
d i l
American Standard Code for Information Interchage
Esercizio 9
¾
Codificare in numeri esadecimali e decimali secondo
lo standard ASCII le seguenti strighe:
Esadecimale:
Bit
2012
x=7*(y+z)
7*( + )
= 42 69 74
= 32 30 31 32
= 78 3D 37 2A 28 79 2B 7A 29
Decimale:
Bit
2012
x=7*(y+z)
= 066 105 116
= 050 000 049 050
= 120 051 055 042 040 121 043 122 041
Esercizio 10
¾
Si chiede di effettuare le seguenti conversioni:
43210 = ? 5
125 = ? 10
5345 = ? 10
= 32125
= 710
= ???10
Esercizio 11
¾
Si chiede di effettuare
effett are la seguente
seg ente conversione:
con ersione:
1238 = ?5
Indicazione: si trasforma pprima il numero in
base 10 e poi in base 5
1238 = 8310 = 3135
Esercizio 13
¾
Si chiede di rappresentare i seguenti numeri in
eccesso 128:
-20 =
20 =
0110 1100
1001 0100
Esercizio 14
¾
Si chiede quali sono i numeri in decimali
corrispondenti alla rappresentazione seguente in
eccesso 128:
0000 0000
0001 1100
= -128
= -100
Esercizio 15
¾
¾
Si abbia una applicazione embedded in cui si devono fare
delle operazioni aritmetiche e sia noto in anticipo che i
valori di partenza, i risultati intermedi ed anche quelli
finali stanno nell
nell'intervallo
intervallo [12345678, 98745678]. E
E'
anche noto che la risoluzione richiesta per i calcoli e' il
centesimo di unita
unita'.. Per questa applicazione non ee'
ipotizzabile ricorrere ad un hardware predisposto ad-hoc,
per motivi
pe
ot v ddi costo e di
d tempi
te p di
d sviluppo.
sv uppo. Pertanto
e ta to lee
uniche alternative sono quelle costituite da usare delle
macchine esistenti sul mercato.
Si determini se la aritmetica intera a 32 bit e/o quella a
64 bit
bit, usate come base per sviuppare calcoli in virgola
fissa, siano adeguate per l'applicazione.
Esercizio 15 - Soluzione
¾
¾
¾
¾
¾
¾
accuratezza richiesta per le operazioni aritmetiche:
1/100 = 0.01 ((base 10))
codici che si possono rappresentare:
2^32 = 2^10 * 2^10 * 2^10 *2^2 = 1024 * 1024 *1024 *4 =
4294967296
oppure
codici
di i che
h sii possono rappresentare:
t
2^64 = 1.844674407370955e+19 = 18446744073709550000
intervallo di valori da rappresentare: 98745678-12345678
98745678 12345678 = 86400000
accuratezza disponibile su 32 bit:
86400000 / 4294967296 = 0.0201165676116943
0 0201165676116943 =>
> non sufficiente
accuratezza disponibile su 64 bit:
86400000 / ((18446744073709550000 = 4294967296 * 4294967296)) =
0.000000000004684 = 4.68 * 10^(-12) => ok!
Esercizio 16
‰
Quale è la rappresentazione in virgola mobile per il
seguente numero decimale:
d i l
3
13,25
, = 1101,01
, = 1,10101*2
,
‰
La rappresentazione in virgola mobile su 32 bit:
¾ 1 bit di segno
g
¾ 8 bit per l’esponente (eccesso 128)
¾ 23 bit per la mantissa
S E 8 bit
M 23 bit
3130 2928 2726 25 24 2322 21 201918 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 10000011 1010100000000000000000
Esercizio 16 - Soluzione
¾
La parte intera si considera separatamente
• 13 in base 10 ->1101 in base 2
¾
La parte decimale si considera separatamente e si
multiplica per 2 come segue:
•
•
•
•
•
0.25 * 2 = 0.5
0.5 * 2 = 1.0
0.0 * 2 = 0.0
Si prende solo la parte intera di ogni risultato
Si scrive il numero partendo dalla prima parte intera
ottenuta
Esercizio 17
¾
¾
Quale valore reale in virgola mobile è
rappresentato dalla seguente sequenza di bit?
1 10000001 11000000000000000000000
–segno: MSB = 1 ⇒ numero negativo
–esponente:
p
1000 00012 = 12910 - in codice eccesso 128
129 – 128 = 1
-parte
p
frazionaria della mantissa:
110000000000000000000002 = 0,7510
0.11 = 1*2-11+1*2-22= 0,7510
-Risultato: ((-1)*(1+0.75)*2
) (
) 1= - 1.75*2 = -3.5
Esercizio 18
¾
¾
Si abbia una applicazione embedded in cui si devono fare
delle operazioni aritmetiche e sia noto in anticipo che i valori
di partenza, i risultati intermedi ed anche quelli finali stanno
nell'intervallo
nell
intervallo [12345678,
[12345678 98745678].
98745678] E
E' anche noto che la
risoluzione richiesta per i calcoli e' il centesimo di unita'. Per
questa applicazione
q
pp
non e' ipotizzabile
p
ricorrere ad un
hardware predisposto ad-hoc, per motivo di costo e di tempi
di sviluppo. Pertanto le uniche alternative sono quelle delle
macchine esistenti sul mercato.
Si determini se usando la rappresentazione in virgola mobile
a 32 bit con 8 bit per la rappresentazione in eccesso 128
dell'esponente e 24 bit per la rappresentazione della mantissa
con modulo e segno, siano adeguate per l'applicazione.
Esercizio 18 - Soluzione
¾
¾
98745678 in base 10 ->
101 1110 0010 1001 0101 0100 1110 in base 2
Esercizio 18 - Soluzione
¾
¾
¾
¾
¾
¾
¾
¾
¾
accuratezza per le operazioni aritmetiche = 1/100 = 0.01 (base 10)
98745678 ->
> 101 1110 0010 1001 0101 0100 1110 in base 2 =
1,01 1110 0010 1001 0101 0100 1110 * 2^26
Il numero ee' positivo -> il bit di segno = 0
L' esponente in eccesso 128: 128 + 26 = 10011010
Mantissa su 23 bit: 01 1110 0010 1001 0101 0100 1110 -> gli
ultimi 3 bit non possono essere rappresentati
Si ottiene la seguente rappresentazione:
• 0 10011010 01111000101001010101001
che in realta
realta' corrisponde al numero:
1,01111000101001010101001 * 2^26 = 101 1110 0010 1001 0101
00100
00 1000
000 in base 2 -> 987
98746432
6 3 in base 100
98746432- 98745678 = 754