Notazione decimale e binaria
Scrivere un numerale non ha senso senza specificarne la base.
Ad esempio, il numerale può valere due, dieci o sedici a seconda che ci
10
si trovi in base 2, 10, 16. Per questo motivo, la base del numerale viene
indicata in basso dopo il numerale stesso scritto tra parentesi
0 1 2 3 4
(10110) (4 ) (16) (22)
= 0 ⋅ 2 + 1 ⋅ 2 + 1 ⋅ 2 + 0 ⋅ 2 + 1 ⋅ 2 = + =
2 10 10 10
P Diventa dunque necessario conoscere le potenze di 2 fino a .
10
2
1 0 −1
(10.1) (2.5)
= 1 ⋅ 2 + 0 ⋅ 2 + 1 ⋅ 2 =
2 10
In base 2 occorre circa il triplo delle cifre che in base 10.
Aggiungere uno zero dopo un numero in base 2 significa moltiplicarlo per 2,
rimuoverlo, dignifica dividere per 2.
ossia di fare moltiplicazioni e divisioni per potenze di due, con grande
velocità.
Ordini di grandezza binari
Ricordiamo che in un sistema binario gli ordini di grandezza sono dati dalle
potenze di 2 e, in particolare, si basano sulla potenza 10
2 = 1024.
Si ha inoltre possibilità di passare dalle potenze di 2 a quelle di 10
tramite un arrotondamento. 9
9 9 9 2.7
2 = 512 2 = 10 = = 2.7 2 ≈ 10
10 × 3
Notazione esadecimale
Per i numerali occorrono 16 cifre {0, 1, … , 9, , , , , , } 2
2. Sistemi di numerazione binaria e codifiche testuali
(13) (19) (0001
= = 0011)
16 10 2
Una singola cifra in base 16 può essere rappresentata con 4 bit binari, in
quanto .
4
16 = 2
Il motivo per cui si utilizza la base 16, è che consente di spacchettare
numerali in base 2 in gruppi da 4 cifre, e di convertirli facilmente in
esadecimale.
conviene utilizzarla per i conti.
Numeri a precisione finita
Avendo 8 bit (ossia 2 cifre in esadecimale), possono essere rappresentati
solo numeri, e occorre scegliere il tipo di numero che si sta
8
2 = 256
rappresentando, per creare una corrispondenza tra i 256 numerali ed i 256
numeri che devono rappresentare. Necessariamente si escludono dei numeri che
si trovano nel mezzo tra quelli che abbiamo scelto, a meno che non si stiano
rappresentando esclusivamente interi. Si avranno ugualmente un numero
maggiore ed uno minore.
Quando abbiamo un numero finito di cifre, al di là dell
rappresentabile, anche la precisione è finita, in quanto il numero di
decimali è finito. Le proprietà associativa e distributiva non valgono più,
ed alcune operazioni vengono chiuse. Nel caso di una somma di numeri
vincolati alle 2 cifre, che non è rappresentabile con
78 + 36 = 114,
Precisione finita in C
La precisione finita può essere un grave problema, in quanto può causare
errori quando occorre maneggiare numeri molto grandi.
Con lo standard di C a 4 byte, ad esempio, è possibile rappresentare solo
fino a , dunque nel nostro intero non possono entrare numeri maggiori di
32
2 ossia 4 miliardi. Un numero come 8 miliardi non può
2 30 9
2 × 2 = 4 × 10
essere dunque inserito nelle variabili di base di C, che reagisce dando come
valore di uscita una cifra negativa.
Nella maggior parte dei casi non superiamo il limite, ma un superamento
involontario può causare gravi errori. 3
2. Sistemi di numerazione binaria e codifiche testuali
a favore di quella ma anche questa ha delle limitazioni.
,
assicurarsi di non superarlo.
Unica eccezione è Python, che ha deciso di assegnare agli interi una
grandezza variabile e non predefinita, attraverso una codifica non standard
degli interi, che ci permette di compiere sugli interi qualsiasi calcolo che
la memoria del nostro calcolatore ci consenta. Questa soluzione riduce
rogramma, ma a fronte
fisico.
Operazione di somma in binario
In binario si ha 1 + 1 = 10.
In generale, se si sta facendo una somma a più cifre in binario, si utilizza
il riporto, dunque possiamo osservare un caso specifico come:
111111111 +
000000001 =
____________________________________
1000000000
Passaggio da decimale a binario
Il modo
divisioni per 2 ripetute fino ad avere 0 come risultato.
cifra relativa alla divisione che si sta svolgendo:
In alternativa si può procedere ad intuito, osservando un numero e
domandandoci quale sia la maggiore potenza di 2 al suo interno, e sommandovi
progressivamente potenze di 2 più piccole. Nel caso del numero 26, la
potenza di 2 più grande contenuta in esso è .
4
16 = 2 4
2. Sistemi di numerazione binaria e codifiche testuali
Intervalli rappresentati
Rappresentando gli interi positivi e lo zero in notazione binaria con n bit
sfruttando tutte le possibili
[0, 2 − 1], 2
disposizioni.
Interi positivi e negativi
Per rappresentare gli interi relativi, a parità di cifre si dimezza
Con un possiamo rappresentare 8 valori in diversi intervalli:
= 3,
• [0, 7]
• [−3, 4]
• [−4, 3] (avanza una codifica)
• [−3, +3]
Per ottenere questi intervalli si utilizzano varie rappresentazioni
Modulo e segno
• Complemento a 1
• Complemento a 2
• Eccesso
•
2
Rappresentazione in modulo e segno
La rappresentazione modulo e segno, su n bit, utilizza il primo per il segno
possono essere rappre −1 −1
[−2 + 1, + 2 − 1]
Nel caso di 4 bit, si ha la possibilità di codificare da [−7, +7]
5 = 0101 − 5 = 1101
Vengono codificati in tutto 15 numeri, in quanto si ha una doppia
rappresentazione dello zero come e
0000 1000.
utilizzo di questo sistema fa venir meno la posizionalità del sistema, e
crea dei problemi nelle operazioni.
Rappresentazione in complemento 1
Nella rappresentazione in complemento 1, ogni numero positivo viene
rappresentato con uno 0 davanti, mentre i numeri negativi iniziano con un 1,
seguito da tutte le altre cifre invertite, rispetto a quelle che avrebbero
se avessero valore positivo. bit è sempre
−1 −1
[−2 + 1, + 2 − 1]
Di conseguenza, per 4 bit, questo è [-7, +7]. Esempio:
5 = 0101 − 5 = 1010
Si ha tuttavia che sia sia codificano lo zero.
0000 1111 5
2. Sistemi di numerazione binaria e codifiche testuali
Questo è sistema è un sistema posizionale, in quanto si considera che
−1
−(2 − 1)
Si ha infatti −5 = 1010
(−7)
−5 = 1 ⋅ + 0 ⋅ 4 + 1 ⋅ 2 + 0 ⋅ 1
Questo sistema è posizionale e ci permette di fare i conti nel modo in cui
li conosciamo, ma presenta ugualmente un problema, ossia che la potenza più
significativa, quella negativa, non è una potenza di 2.
Rappresentazione in complemento a 2
La problematica della rappresentazione in complemento a 1 viene risolta
nella rappresentazione a complemento a 2, in cui la cifra più significativa
vale . Tutte le altre cifre hanno invece un valore positivo.
−1
−2 bit è dunque si ha
−1 −1
[−2 , +2 − 1],
un intervallo asimmetrico.
Per rvallo di rappresentazione è In
[−8,
4 +7].
questo caso si ha .
(0101) (1011)
5 = − 5 =
2 2
Con questo sistema si ha un solo zero, dato da 0000.
È questo il modo in cui vengono rappresentati i numeri nei calcolatori.
In modo più immediato per rappresentare i numeri positivi nel complemento a
2 è utilizzare le regole del complemento a 1. I numeri negativi si possono
ottenere in vari modi.
Esempio di rappresentazione di un numero positivo:
(6)
10
Si calcola il modulo di questo numero e si aggiunge uno zero per
(110) 2
ottenere (6) (0110) (−8)
= = 0 ⋅ + 1 ⋅ 4 + 1 ⋅ 2 + 0 ⋅ 1
10 2
La rappresentazione di un numero negativo inizia sempre dal calcolo del
modulo, a cui si aggiunge uno 0 (6) (0110)
→
10
A questo punto i numeri vengono ricopiati da destra fino al primo 1
(compreso il primo 1) e quelli successivi vengono invertiti.
(1010)
0110 → 10 → 2
Rappresentazione in eccesso −
Rappresentare in eccesso vuol dire rappresentare un numero sommandovi una
data potenza di 2 (in questo caso, dati bit, si sceglie come eccesso
). Si sceglie questo eccesso in modo da rendere positivi tutti i numeri
−1
2
da rappresentare e dopo di che questi vengono codificati in binario come
interi positivi. 6
2. Sistemi di numerazione binaria e codifiche testuali
I numerali rappresentati in eccesso si ottengono da quelli in
−1
2
complemento a 2 complementando il bit finale, ossia rendendolo 1 se è 0 o 0
se è 1.
Se prendiamo bit, si ha un eccesso di dunque i numeri
= 4 8, esattamente come un
[−8, +7],
complemento a 2
Si ha dunque
−3 − 3 + 8 = 5 → 0101
+4 + 4 + 8 = 12 → 1100
Conversione CP2 Ex 8
(3) (0011) (3 (1011)
→ + 8) →
10 2 10 8
(−3) (1101) (−3 (0101)
→ + 8) →
10 2 10 8
, da ora indicato come può essere scelto anche in maniera
sia
da ed è dato da
[−, 2 − − 1]
Rappresentazioni a confronto 7
2. Sistemi di numerazione binaria e codifiche testuali
Si osserva che nella rappresentazione ad eccesso 8 i numerali sono ordinati,
ossia per confrontare 2 numeri è sufficiente osservare i numerali binari
senza fare calcoli.
Addizioni binarie
Le addizioni tra numerali binari si effettuano cifra a cifra portando il
riporto alla cifra successiva.
Se il numero di cifre non permette di rappresentare il risultato della somma,
si ha un trabocco nella propagazione del riporto.
Addizioni in complemento
In complemento a 2 somme e sottrazioni tra reali sono gestite allo stesso
modo, ma occorre ignorare eventuali trabocchi a ordini superiori
Se gli operandi hanno segno differente non si rischia mai di uscire
(rappresentato dal numero in verde)
Se gli o
no:
Se si sommano due operandi negativi ed il risultato è ancora negativo, non
si ha alcun problema; stessa cosa vale per somme di positivi. Se invece il
risultato cambia segno, si è verificato un errore e si è usciti 8
2. Sistemi di numerazione binaria e codifiche testuali
complemento, generando un cambio di segno.
Rappresentare numeri
Se ci sarà chiesto di rappresentare un intero, ci sarà chiesto di farlo con
il numero di bit più basso possibile (in complemento a due o in eccesso)
Per fare ciò
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Riassunto esame Calcolatori Elettronici, Prof. Colombo Carlo, libro consigliato Architettura e organizzazione dei c…
-
Riassunto esame Calcolatori Elettronici, Prof. Colombo Carlo, libro consigliato Calcolatori elettronici - Architett…
-
Riassunto esame Concetti giuridici di base, Prof. Gianni Santucci, libro consigliato Basi romanistiche di istituti …
-
Riassunto esame informatica, prof Console, libro consigliato Introduzione all'informatica, Console