Codifica numeri Esercizi numeri Esercitazione su rappresentazione dei numeri decimali interi
SOLUZIONE ESERCIZIO
Converti i seguenti numeri decimali in numeri binari equivalenti:
Copy 19.25D
19/2 = 9 resto 1
9/2 = 4 resto 1
4/2 = 2 resto 0
2/2 = 1 resto 0
1/2 = 0 resto 1
0.25 * 2 = 0.5 intero 0
0.5 * 2 = 1.0 intero 1
Quindi 19.25D = 10011.01B
Copy 123.456D
123 /2 = 61 resto 1
61 /2 = 30 resto 1
30 /2 = 15 resto 0
15 /2 = 7 resto 1
7 /2 = 3 resto 1
3/2 = 1 resto 1
1/ 2 = 0 resto 1
1111011 per la parte intera
Per la parte frazionaria:
1) 0.456 × 2 = 0 + 0.912;
2) 0.912 × 2 = 1 + 0.824;
3) 0.824 × 2 = 1 + 0.648;
4) 0.648 × 2 = 1 + 0.296;
5) 0.296 × 2 = 0 + 0.592;
6) 0.592 × 2 = 1 + 0.184;
7) 0.184 × 2 = 0 + 0.368;
8) 0.368 × 2 = 0 + 0.736;
9) 0.736 × 2 = 1 + 0.472;
10) 0.472 × 2 = 0 + 0.944;
11) 0.944 × 2 = 1 + 0.888;
12) 0.888 × 2 = 1 + 0.776;
13) 0.776 × 2 = 1 + 0.552;
14) 0.552 × 2 = 1 + 0.104;
15) 0.104 × 2 = 0 + 0.208;
16) 0.208 × 2 = 0 + 0.416;
17) 0.416 × 2 = 0 + 0.832;
18) 0.832 × 2 = 1 + 0.664;
19) 0.664 × 2 = 1 + 0.328;
20) 0.328 × 2 = 0 + 0.656;
21) 0.656 × 2 = 1 + 0.312;
22) 0.312 × 2 = 0 + 0.624;
23) 0.624 × 2 = 1 + 0.248;
24) 0.248 × 2 = 0 + 0.496;
25) 0.496 × 2 = 0 + 0.992;
26) 0.992 × 2 = 1 + 0.984;
27) 0.984 × 2 = 1 + 0.968;
28) 0.968 × 2 = 1 + 0.936;
29) 0.936 × 2 = 1 + 0.872;
30) 0.872 × 2 = 1 + 0.744;
31) 0.744 × 2 = 1 + 0.488;
32) 0.488 × 2 = 0 + 0.976;
33) 0.976 × 2 = 1 + 0.952;
34) 0.952 × 2 = 1 + 0.904;
35) 0.904 × 2 = 1 + 0.808;
36) 0.808 × 2 = 1 + 0.616;
37) 0.616 × 2 = 1 + 0.232;
38) 0.232 × 2 = 0 + 0.464;
39) 0.464 × 2 = 0 + 0.928; <--- DA QUI SI REPETE
40) 0.928 × 2 = 1 + 0.856;
41) 0.856 × 2 = 1 + 0.712;
42) 0.712 × 2 = 1 + 0.424;
43) 0.424 × 2 = 0 + 0.848;
44) 0.848 × 2 = 1 + 0.696;
45) 0.696 × 2 = 1 + 0.392;
46) 0.392 × 2 = 0 + 0.784;
47) 0.784 × 2 = 1 + 0.568;
48) 0.568 × 2 = 1 + 0.136;
49) 0.136 × 2 = 0 + 0.272;
50) 0.272 × 2 = 0 + 0.544;
51) 0.544 × 2 = 1 + 0.088;
52) 0.088 × 2 = 0 + 0.176;
53) 0.176 × 2 = 0 + 0.352;
54) 0.352 × 2 = 0 + 0.704;
55) 0.704 x 2 = 1 + 0.408;
56) 0.408 x 2 = 0 + 0.816;
57) 0.816 x 2 = 1 + 0.732;
58) 0.732 x 2 = 1 + 0.464; <---
Quindi la conversione di 0.456D =
(0.0111 0100 1011 1100 0110 1010 0111 1110 1111 10 (01 1101 1011 0010 0010 11) ricorrente)
Come altro esempio, calcoliamo la rappresentazione binaria di 0.1
:
Copy 0.1 * 2 = 0.2 intero 0
0.2 * 2 = 0.4 intero 0 <----
0.4 * 2 = 0.8 intero 0
0.8 * 2 = 1.6 intero 1
0.6 * 2 = 1.2 intero 1 <--- DA QUI CONTINUA A RIPETERSI
0.2 * 2 = 0.4 intero 0
0.4 * 2 = 0.8 intero 0
0.8 * 2 = 1.6 intero 1
0.6 * 2 = 1.2 intero 1
Quindi la conversione 0.1D = (0.00011 (0011) recurring)
NUMERI INTERI CON SEGNO
Esercizio 1 : con n=8, dimensione del registro, la sequenza di bit: 0 100 0001B
a che numero decimale corrisponde?
Esercizio 2 : con n=8, la sequenza di bit: 1 000 0001B
a che numero decimale corrisponde?
Esercizio 3 : con n=8, la sequenza di bit: 0 000 0000B
a che numero decimale corrisponde?
Esercizio 4 : con n=8, la sequenza di bit: 1 111 1111B
a che numero decimale corrisponde?
Esercizi rappresentazione numeri floating point
Ricavare il valore decimale del seguente numero in virgola mobile rappresentato secondo lo standard IEEE 754 a 32 bit: 0 10000000 10000000000000000000000
Soluzione:
Segno: +
Esponente: E = 2^7 = 128 esp = 128 -127 = 1
Mantissa: mant = 1.1
-> N = 1.1B * 2^1 = 11B = 3D
Rappresentare il numero decimale –4.5 secondo lo standard in virgola mobile IEEE 754 a 32 bit.
Soluzione:
Segno: 1
Rapp. binaria: 4.5D = 100.1B
Forma normalizzata: N = 1.001 * 2^2
Esponente: esp = 2 -> E = 2 + 127 = 129D = 10000001
-> IEEE 754: 1 10000001 0010........0
Rappresentare il numero decimale 0.25 secondo lo standard in virgola mobile IEEE 754 a 32 bit.
Soluzione:
Segno: 0
Rapp. binaria: 0.25D = 0.01B
Forma normalizzata: N = 1.0 * 2^-2
Esponente: esp = -2 -> E = -2 + 127 = 125D = 01111101B
-> IEEE 754: 0 01111101 000......0