rappresentazione dell’informazione...rappresentazione dell’informazione il sistema di...
TRANSCRIPT
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [1]
Rappresentazione dell�informazione Il sistema di numerazione binario
� L�Informazione è un�entità astratta
� Deve essere trasformata in un mezzo misurabile ed
omogeneo
� Identificazione degli attributi misurabili
� Identificazione di un alfabeto di simboli
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [2]
Vantaggi dell�alfabeto binario
� EFFICIENZA
� Operazioni binarie molto veloci
� SEMPLICITA�
� circuiti per aritmetica binaria semplici
� AFFIDABILITA�
� uso di trigger per evitare disturbi
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [3]
Il sistema di numerazione binario
� E� un sistema di tipo posizionale.
10111Þ 1*24 + 0*23 + 1 * 22 + 1*21 + 1*20 = 23
� Conversione da decimale a binario:
� posizionale
� divisioni successive
� Aritmetica binaria segue le stesse regole di quella
decimale
� Fattore che allontana l�uomo dalla macchina
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [4]
I sistemi di numerazione additivi
� Egizio
� Greco
� Romano
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [5]
I sistemi di numerazione Posizionali
Maya
1.000 d.C.
.
.
.
.
.
.
1.400 d.C.
Indo-Arabi (zero o zefiro introdotto nel 1200 da Fibonacci)
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [6]
Metodo Posizionale
� Individuare la maggiore potenza del 2
� sottrarla al valore in questione
� Proseguire fino a che il resto sarà 0 o 1
esempi: 27, 237, 59, 1000
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [7]
Metodo delle divisioni successive
� Dividere successivamente per 2
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [8]
Somma di numeri binari
� se la somma è > 1, scrivere la cifra a
destra e riportare 1 (analogo al decimale)
� esempio:
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [9]
Differenza di numeri binari
� se la cifra è inferiore, occorre un prestito di
1 a sinistra, (analogo al decimale)
� esempio:
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [10]
Moltiplicazione di numeri binari
� Si incolonnano le moltiplicazioni parziali e
si somma
� esempio:
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [11]
Divisione di numeri binari
� Si abbassa il dividendo successivamente calcolando i resti.
� Ogni volta che il dividendo è < del divisore, occorre accostare uno 0 al
risultato
� esempio:
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [12]
Tecniche di semplificazione del sistema
binario
� Stima approssimata delle grandezze binarie
in decimale
� Stima approssimata delle grandezze
decimali in binario
� Sistema di numerazione ottale
� Sistema di numerazione esadecimale
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [13]
Richiami di algebra di base: i logaritmi
Definizione:
(Inversa dell'esponenziale)
logaritmo del numero b in
base a quel numero c a cui
bisogna elevare a per
ottenere b. c=loga(b); ac=b
Prorietà:
1) log(a·b) = log(a) + log(b)
2) log(a/b) = log(a) � log(b)
3) log(ab) = b·log(a)
4) logb(x) = loga(x)/loga(b)
y = 2x
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [14]
Metodi per la stima
� Suffissi notevoli (10 / 3 » 1/log10
(2) = 1/0,301 = 3,322):
Suffisso Valore Decimale Approssimato » IEEE1541&IEC
Kilo 210
1.024 Mille 103 Ki: Kibi
Mega 220
1.048.576 Milione 106 Mi: Mibi
Giga 230
1.073.741.824 Miliardo 109 Gi: Gibi
Tera 240
1,0995*1012
Bilione 1012
Ti: Tebi
Peta 250
1,1259*1015
Biliardo 1015
Pi: Pibi
Exa 260
1,1529*1018
Trilione 1018
Ei: Exbi
2 4 8 16 32 64 128 256 512 1024
1 2 3 4 5 6 7 8 9 10
� Prime 10 potenze del 2
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [15]
Metodi per la stima
Per una maggiore precisione su grandi numeri, usiamo: 1.000/301:
Valore 10^n IEEE1541&IEC 2^(n*1000/301) 2^(n*10/3)
Mille 103 Ki: Kibi 1000,7 1.024
Milione 106 Mi: Mibi 1.001.378 1.048.576
Miliardo 109 Gi: Gibi 1.002.067.277 1.073.741.824
Bilione 1012 Ti: Tebi 1,00276*1018 1,0995*1012
Biliardo 1015 Pi: Pibi 1,00345*1018 1,1259*1015
Trilione 1018 Ei: Exbi 1,00414*1018 1,1529*1018
--- 10100 ---- 1,0232*10100 2,2046*10100
Il rapporto 1000/301 � ovvero una maggior precisione nel calcolo di
log10
(2) = 0,30102999 - restituisce un valore inferiore di un�unità (un
bit in meno), rispetto a 10/3, già per numeri decimali oltre le 36 cifre.
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [16]
Es.: quanti bit per un numero decimale?
� X= 1.435.785
� 1M< x < 2M Þ 20 bit < n < 21 bit Þ 21bit [log2(x)=20,45]
� X = 20.345.444
� 16M< x < 32M Þ 24 bit < n < 25 bit Þ 25 bit [log2(x)=24,28]
� x = 300.456.231
� 256M< x < 512M Þ 28 bit < n < 29 bit Þ 29 bit [log2(x)=28,16]
Esercizio consigliato: riprovare moltiplicando/dividendo per 2
NB: l'arrotondamento di log2(x) va eseguito sommando 1 e prendendo la parte intera
2 4 8 16 32 64 128 256 512 1024
1 2 3 4 5 6 7 8 9 10
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [17]
Es.: quante cifre decimali per n bit?
� n = 24 bit
n = 20+4 Þ 1M*16 Þ 16M Þ 8 digit (2,4*3 = 7,2; log10
(224)= 7,22)
� n = 32 bit
n = 30+2 Þ 1G*4 Þ 4G Þ 10 digit (3,2*3 = 9,6; log10
(232)= 9,63)
� n= 16 bit
n = 10 + 6 Þ 1K * 64 Þ 64K Þ 5 digit (1,6*3 = 4,8; log10
(216)= 4,82)
Esercizi consigliati: aumentare il valore dei bit e verificare il risultato
arrotondando log10
(2n) all'unità superiore
NB: Occorre distinguere tra: a) numero decimale massimo rappresentabile e
b) numero di combinazioni possibili con n bit.
2 4 8 16 32 64 128 256 512 1024
1 2 3 4 5 6 7 8 9 10
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [18]
Es.: parametri BIOS x Hard Disk
� head = 4 bit; settore = 6 bit; cilindro = 10
� head max 16, settore max 64, cilindro max 1024
� capacità max = 16 x 64 x 1024 x size_settore
� capacità max = 1M x size_settore
� capacità max = 512 MB (size_settore = 512)
� In realtà i settori si numerano da 1 a per cui occorre togliere 1024 x 16 x 512 = 8 MB
� capacità max = 512 - 8 = 504 MB = 528.482.304
2 4 8 16 32 64 128 256 512 1024
1 2 3 4 5 6 7 8 9 10
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [19]
Sistemi di numerazione intermedi
Tenere a mente le prime 8 o 16 rappresentazioni binarie
Digit Binario Digit Binario
0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111
|_OTTALE_|
|___ESADECIMALE___|
Digit Binario
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111|_OTTALE_|
135 7208
001 011 101 111 010 000
BBD0H
1011 1011 1101 0000
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [20]
Le Conversioni di Base
Conversione da decimale a binario:
� Convertire in ottale o esadecimale, usando le divisioni successive insieme ai valori noti
� Abituarsi a vedere il valore ottale o esadecimale come gruppi di 3 o 4 bit
Esadecim. Ottale Decimale Suffisso bit
100 400 256 1/4 K 8
200 1000 512 1/2 K 9
400 2000 1024 1 K 10
1000 10000 4096 4 K 12
10000 200000 65536 64 K 16
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [21]
Rappresentazione binaria dei numeri relativi� Modulo e segno
il bit più significativo indica il segno: 1 se negativo
� Complemento a 2
Definizione: Cb(N) = bk-N ; k = dim.struttura Þ 1 seguito da k zeri
Decim. Hex (R) Hex (8bit) Hex (16 bit)
+57 +39 39 0039
-57 -39 B9 8039
-0 -0 80 8000
-1 -1 81 8001
Decim. Hex (R) Hex (8bit) Hex (16 bit)
+57 +39 39 0039
-57 2k - 39 C7 FFC7
-0 2k - 0 00 0000
-1 2k - 1 FF FFFF
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [22]
Operazioni con relativi a C2
CN = riporto su segno, CY = riporto ulteriore
Operazioni corrette
CY B CN O3 H4 H8 Dec
0 2 2 22 34 +
1 5 5 D5 -43 =
0 1 0 7 7 F7 -9 OK
CY B CN O3 H4 H8 Dec
0 4 2 42 66 +
1 5 5 D5 -43 =
1 0 1 1 7 17 23 OK
Operazioni Errate
CY B CN O3 H4 H8 Dec
0 2 2 22 34 +
0 7 5 75 +117 =
0 1 1 1 7 97 151 Errore
CY B CN O3 H4 H8 Dec
1 1 7 97 -105 +
1 2 1 A1 -95 =
1 0 0 3 8 38 -200 Errore
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [23]
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [24]
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [25]
Rappresentazione floating point dei numeri reali
Forma generica: [S][E][M] numero = (-1)S * M * 10 E
Esempio: Mantissa a 3 cifre decimali ed esponente a 2 cifre
�rappresento i numeri da 0,100 x 10-99 a 0,999 x 10+99
�Esistono 4 regioni non rappresentabili (1, 3, 5, 7)�Esistono solo 358.201 numeri rappresentabili (900*199*2+1)
�la densita� dei numeri e� differente (vedi puntini)�L�errore relativo dell�arrotondamento e� comunque costante
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [26]
Rappresentazione binaria dei numeri reali
Forma generica: [S][E][M] Þ (-1)S * (1+M) * 2E
Esempi:
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [27]
Rappresentazione standard dei numeri reali
Forma generica: [S][E][M] Þ (-1)S * (1+M) * 2E
Nome Formato Nome in C Nome in f90 Totale S E M Cifre Decimali
Single float real*4 32 1 8 23 7
Double double real*8 64 1 11 52 16
Extended* long double? real*10+ 40+ 1 15+ 63+ 19+
Quadruple* long double??? real*16 128 1 15 112 34
Nome Formato Min Normal Max Normal Min Subnormal Machine Epsilon
Single 1.175e-38 3.403e+38 1.401e-45 1.192e-07
Double 2.2e-308 1.8e+308 4.9e-3246 2.220e-16
Extended <3.4e-4932 >3.4e+4932 <3.6e-4951 <1.084e-19
Quadruple 3.4e-4932 3.4e+4932 6.5e-4966 1.926e-34
Formato Ansi/IEEE 754-1985
Zero : M=0 ; E=0 µ : M=0; E=tutti �1�
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [28]
Esempio di formato IEEE 754
Forma generica: [S][E][M] Þ (-1)S * (1+M) * 2E
(esponente biased ovvero +n/2-1: 127 o 1023)
Real*4, negativo, esponente = 129 -127 = 2
(1+M) = 1,01 ; valore = - 1,01 * 22 = - 101 = - 510
Ing. Massimo Trojani � Laboratorio di Architettura degli Elaboratori UNICAM 2012 [29]