vuoi
o PayPal
tutte le volte che vuoi
LA CODIFICA DEI NUMERI: NOTAZIONE POSIZIONALE
Dato un numero N10 in base 10 contenente m cifre scritto come am-1am-2...a0, questo corrisponde a:
- N10 = am-1 × 10m-1 + am-2 × 10m-2 + ... + a0 × 100
- ai × 10i;
- Con ai ∈ A10
Esempio: (3521)10 = 3 × 103 + 5 × 102 + 2 × 101 + 1 × 100
Con m cifre in A10 quanti numeri posso esprimere: 10m
Con m cifre in notazione posizionale posso scrivere tutti i numeri tra [0, 10m - 1]
Esempio con rappresentazioni posizionali in base p:
m = 3 e p = 7 capos [0,p7 - 1] cioe [0, 2400]
m = 2 e p = 13, capo [0, p13 - 1] cioe [0, 12]
m = 4 e p = 13, capo [0,13(4 - 1)] cioe [0, 28560]
Al crescere di p cresce il potere espressivo del dizionario.
ALTRE CODIFICHE
Codifica OTTICALE (in base 8)
A8 = {0, 1, ... , 7}
Con m cifre in A8 posso scrivere numeri da [0, 8m - 1]
Codifica ESADECIMALE (in base 16)
A16 = {0, 1, ... , 9, A, B, C, D, E, F}
Per la conversione: A15 in base 10, F16 = 15
Con m cifre in A16 scrivo i numeri da [0, 16m - 1]
CONVERSIONE BINARIO ⇒ DECIMALE
(101)2 = 1 × 22 + 0 × 21 + 1 × 20 = (5)10
(1000010)2 = 1 × 26 + 0 × 25 + 0 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = (39)10
CONVERSIONE DECIMALE ⇒ BINARIO
- 53 / 2 = 26 + 1
- 26 / 2 = 13 + 0
- 13 / 2 = 6 + 1
- 6 / 2 = 3 + 0
- 3 / 2 = 1 + 1
- 1 / 2 = 0 + 1
Si comincia dal basso verso l'alto
=> (53)10 = (110101)2
⌃/2 cicli resto delle divisioni in inter
NB: L'ultimo resto è sempre = 1
CONVERSIONI OTTALE/ESADECIMALE → DECIMALE
(623)8 → 6 × 82 + 2 × 81 + 3 × 80 → 6 × 64 + 16 + 3 → (403)10
(623)16 → 6 × 162 + 2 × 161 + 3 × 160 → 6 × 256 + 32 + 3 → (1541)10
(A1F)16 → A × 162 + 1 × 161 + F × 160 → 10 × 256 + 16 + 15 → (4143)10
CONVERSIONI DECIMALE → OTTALE/ESADECIMALE
$ Fanno le conversioni passando dalla rappresentazione binaria
- Esprimere ogni sequenza di 3 numeri binari se è in base 8 (23 = 8)
(1234)10 → (10011010010)2 = (010 011 001 010)2
→ (1234)10 = (2312)8
- Esprimere ogni sequenza di 4 numeri binari se è in base 16 (24 = 16)
(1234)10 → (10011010010)2 = (0100 1101 0010)2
→ (1234)10 = (4D2)16
SOMMA TRA NUMERI BINARI
- Si esegue "in colonna" e si opera cifra per cifra.
0 + 0 = 0 riporto 0 1 + 0 = 1 riporto 0 0 + 1 = 1 riporto 0 1 + 1 = 0 riporto 1
Esempio:
0101 + 1001 = 1110
(5)10 + (9)10 = (14)10
I NUMERI INTERI
- E' possibile dedicare il primo bit alla codifica del segno
- "1" il numero de segno e' negativo
- "0" il numero de segno e' positivo
- Con n cifre in binario e codifica modulo e segno posso rappresentare tutti i numeri nell'intervallo X ε [-2n-1 + 1, 2n-1 - 1]
Esempi:
01010 = +10
11101 = -13
-27 = 11100111
127 = 01111110
I NUMERI FRAZIONARI
S. rappresentano anteponendo zero al numero.
Nα: 0.α1 α2 α3
αi x p-i, αi ∈ αp
αi x p-i = am x p-m
Σ αi x p-i, αi ∈ αi
- In base 10 ==> 0,586 = 5 x 10-1 + 8 x 10-2 + 6 x 10-3
- In base 2 ==> 0,(0,101)2 = 1 x 2-1 + 0 x 2-2 + 1 x 2-3 = 1/2 + 1/8 = (0,625)10.
NB: Date n cifre in base p=2, posso rappresentare in sottoinsieme dell'intervallo continuo [0,1 - 2-m] è l'errore di approssimazione sarà minore di 2-m.
CONVERSIONE DECIMALE —> BINARIO SU FRAZIONI
L'algoritmo della moltiplicazione per convertire Nα ∈ [0,1]
- Moltiplico Nα per 2.
- La pare intera del risultato definisce una cifra della rappresentazione binaria finale.
- La parte frazionaria viene moltiplicata per 2.
- Si itera 1.3 fino a
- ottenere parte frazionale nulla (rappresentazione esatta) oppure
- Copri tutte le cifre binarie a disposizione (rappresentazione approssimata)
- La cifra piú significativa (il coefficiente di 2-1) è data dalla prima parte intera calcolata, quella meno significativa (il coefficiente di 2-m) è data dall'ultima parte intera calcolata.
esempio:
- Conversione in binario 0.625 utilizzando m=3 bit
- Parte Intera + Parte frazionale
- Otteniamo (0,625)10 = (0.101)2
- (la parte intera definisce la rappresentazione binaria)
0,625 x 2 = 1 + 0,25
0,250 x 2 = 0 + 0,5
0,500 x 2 = 1 + 0