Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
BASE ESADECIMALE: OPERAZIONI:
0 0000 SOMMA
1 0001
2 0010 + 0 1 SOTTRAZIONE
3 0011 0 0 1
4 0100
5 0101 1 1 (1)0
6 0110 + 0 1
7 0111 0 0 (1)1
8 1000 1 1 0
9 1001
A 1010 MOLTIPLICAZIONE
B 1011
C 1100
D 1101 + 0 1
E 1110 0 0 0
F 1111 1 0 1
Rappresentazione dei numeri nel calcolatore:
poiché nel computer l’unità minima di informazione è il bit, un sistema fisico dotato di due stati stabili, in esso i numeri
(e le informazioni) sono rappresentate in binario.
Numeri negativi:
il binario ha solo 2 simboli, 0 e 1, e non ha simboli per rappresentare il segno (+ e -), per questo si sono
adottate diverse strategie. 16
Rappresentazione in modulo e segno: il primo bit rappresenta il segno e gli altri rappresentano il
modulo del numero, facendo un esempio con un numero a 8
bit, invece di poter rappresentare i numeri da 0 a 256
possiamo rappresentare i numeri da -127 a 127, ovvero da -
+1 a -1 poiché lo 0 è rappresentato 2 volte, come
7 7
2 2
negativo e come positivo.
Complemento alla base di un numero: nella
rappresentazione in complemento alla base con n cifre le
n combinazioni rappresentano numeri positivi e
B n
B
negativi, le combinazioni da 0 a -1 rappresentano
2 n
B
i numeri positivi, quelli negativi vanno da a
2
n -1 e si rappresentano con la seguente definizione:
B
sia X un numero positivo, il suo corrispondente
n
negativo (-X) è rappresentato come il numero B
-X, cioè –X si rappresenta come il
complementare di X rispetto al numero massimo.
Esempio con un numero con base dieci: 2
10
2
B=10 n=2, quindi si hanno configurazioni possibili, da 0 a 49 (cioè -1) rappresentano i
10 2
2
10 2
numeri positivi, da 50 (cioè a 99 ( cioè -1) come previsto dal complemento. Se X=36, -X in
10
¿
2 2
complemento ( in questo caso si dice complemento a 10) è -X=100-36=64.
10
REGOLA PRATICA: il complemento a 10 si trova analizzando le cifre a partire da destra: gli zeri fino alla prima
cifra significativa si riportano tali e quali, della prima cifra significativa si fa il complemento a 10 di tutte le
altre il complemento a 9.
Esempio con un numero base 2: 5
2
5
B=2 n=5, quindi si hanno configurazioni possibili, da 0 a 01111 (cioè -1) rappresentano i numeri
2 2
5
2 5
positivi, da 10000 (cioè a 10000 ( cioè -1) come previsto dal complemento.
2
¿
2
Se X=01011, -X in complemento a 2 è 100000-01011=10101.
REGOLA PRATICA: l complemento a 2 si trova partendo dal bit meno significativo, si riportano invariati tutti i
bit fino al primo bit a 1 compreso, si complementano i rimanenti bit (0→1 e 1→0). 17
Complemento alla base -1 di un numero: nella rappresentazione in complemento alla base -1 di un
n
numero con n cifre le combinazioni rappresentano
B
numeri positivi e negativi. Le combinazioni che vanno da 0 a
n
B -1 rappresentano i numeri positivi. Le combinazioni
2 n
B n
che vanno da a -1 rappresentano i numeri
B
2
negativi, con la seguente definizione:
dato un numero positivo X, il suo corrispondente negativo è
B
¿
dato da -1)-X.
¿
¿
Esempio con un numero base 10 (detto complemento a 9):
X=36 B=10 n=2, quindi in complemento alla base -1 è 99-
36=63
Esempio con un numero base 2: (detto complemento a 1)
2
¿
X=01011 B=2 n=5, quindi il complemento alla base-1 è -1)-X=(100000-1)-X=11111-01011
¿
¿
(si ottiene complementando ogni singolo bit 0→1 e 1→0)
N.B. il complemento alla base si può ottenere sommando 1 al complemento alla base -1
Considerazioni sui complementi alla base e alla base-1:
nelle rappresentazioni in complemento le rappresentazioni dei numeri negativi sono definite solo quando si
è stabilito il numero delle cifre, per esempio i complementi a 1 e a 2 per X=36 B=10 e n=2 è 64 per il
complemento a 2 e 63 per il complemento a 1, invece per X=36 B=10 e n=3 è 964 per il complemento a 2 e
963 per il complemento a 1. Tutti questi numeri rappresentano comunque il numero -36!
In complemento a 2 i numeri positivi sono rappresentati dal loro modulo e hanno il bit più significativo
(segno) posto a 0 o a 1, metà delle configurazioni sono perciò riservate ai positivi e metà ai negativi. Il più
n−1 n−1
piccolo numero rappresentabile è - , il più grande è -1 e lo zero ha un’unica
2 2 n−1
n−1
rappresentazione (tutti zeri). In complemento a 1 il più piccolo è - +1, il più grande è -1 e lo
2 2
zero ha due rappresentazioni, una come +0 e una come -0 (tutti zeri e tutti uni). In altre parole il
complemento a 2 divide le rappresentazioni possibili equamente tra positivi e negativi considerando lo zero
come primo positivo, il complemento a 1 lo fa considerandone uno positivo e uno negativo. In questo modo
il complemento a 1 può rappresentare un negativo in meno rispetto al complemento a 2.
Il complemento alla base (o a 2) è utile perché permette alla macchina di effettuare la somma algebrica
senza dover operare una serie di confronti tra i due operandi ( per determinare il segno del risultato),
operazione che richiederebbe parecchio tempo, inoltre con la tecnica del complemento si può utilizzare un
solo circuito per effettuare sia addizione che sottrazione. n
Esempio: proviamo a calcolare A-B, sappiamo che –B si rappresenta come ( -B), non considerando il
2
n
riporto A-B = A+( -B)
2
A=01001 B=00110 18
01001- 01001+
00011= 11010= esempio con B’ in complemento a 2
00011 (1) 00011
Circuito di somma e sottrazione:
n
A-B = A+B’ = A+( -B) in complemento a 2
2 n
2
= A+ -1-B) in complemento a 1
¿
Sia S una stringa di bit tali che:
sia I un numero di cui vorremmo fare il
negativo:
se S=0 →I non cambia
se S=1 →restituisce il contrario
(cioè I’, complementato).
R
Sia ora A e B i bit addendi, il riporto della
i
R
somma precedente, C il risultato e il riporto di questa coppia. I
o
risultati a seconda degli ingressi possono essere:
Se ora procediamo
collegando i singoli blocchi
possiamo costruire un vero e proprio circuito sommatore-sottrattore:
C C C a a
Il risultato C= gli addendi A=
2 1 0 2 1
a b b b
e B= , l’operazione svolta è quindi C=A+B
0 2 1 0
Si presentano due casi:
1) se S=0 allora i bit b rimangono invariati e otteniamo una somma normale:
c a b c a b c a b
= + = + = + C=
0 0 0 1 1 1 2 2 2
A+B
2)se S=1 allora i bit b cambiano
c a b c a b ' R c a b
= + ’+1 = + + = + ’+
0 0 0 1 1 1 0 2 2 2
R 1 k k
C= A+B’+1= A+( -1-B)+1= A+( -B)= A-B
2 2 19
complemento complemento
a 1 a 2
OVERFLOW: il risultato di una somma algebrica (sia A+B o A’+B’) non è rappresentabile dal numero di bit a
disposizione.
esempio con 8 bit in complemento a 2:
64+64=128 → 01000000+
01000000=
10000000→numero negativo(-128), la somma di due numeri
positivi non deve essere negativa.
Esempio con 6 bit in complemento a 2:
(-19)+(-17)=-36 → 19= 010011 101101+
-19=101101 101111= non considero il
riporto(6bit) 17=010001 1011100→ è un numero positivo dalla
-17=101111 somma di due negativi!!!
C’è overflow se A e B positivi, la somma S è negativa oppure se A e B negativi, la somma è positiva→
impossibile.
Notazione per eccesso:
alla rappresentazione in valore assoluto di un numero viene sommata
una costante detta COSTANTE DI POLARIZZAZIONE, pari al numero di
slittamento verso il basso necessari per avere una rappresentazione
ordinata dal numero negativo più basso al positivo più alto, invece di
avere una notazione spezzata come nel complemento a due. Con
questa convenzione il bit di segno è invertito.
Esempio 4 bit + 1 per il segno →
Costante di polarizzazione 1000
Numeri razionali, notazione in virgola fissa:
dato un numero di bit con cui si rappresenta un numero razionale,
determino la posizione della virgola e stabilisco a priori quanti bit
rappresentano la parte intera e quanti la parte decimale. Per i numeri
negativi si può scrivere il numero in complemento alla base.
Esempio vogliamo rappresentare i numero 72,6, fissiamo 8 bit per la
parte intera e 4 bit per la parte decimale:
diviso 2 resto per 2 ri
port o
20
b b
( bit più significativo intero, bit più significativo decimale)
7 −1
La virgola fissa da un ridotto intervallo di rappresentabilità dei numeri.
Numeri razionali, notazione in virgola mobile( rappresentazione normalizzata):
(floating point)
qualunque numero può essere rappresentato nella forma S E M:
S= segno, 0 per il positivo e 1 per il negativo.
M= mantissa, le cifre significative rappresentate in forma normalizzata, cioè con la prima cifra significativa
dopo la virgola, per eliminare i simboli ridondanti.
E= esponente a cui bisogna elevare la base di rappresentazione perché mi dia il numero di partenza A, una
volta moltiplicata per la mantissa, viene utilizzata una rappresentazione che non necessiti di un bit
aggiuntivo per indicare il seno, come la notazione polarizzata.
Esempi: 5
10110,011 → 0,10110011* forma normalizzata
2
0,00101101 → 0,101101* forma normalizzata
−2
2
L’esponente è sempre espresso in notazione polarizzata, dato un numero di bit (magari ben associabile alla
dimensione della memoria, per esempio 8 bit) possiamo riservare un certo numero di bit a ciascuno dei tre,
ordinati secondo quest’ordine convenzionale.
S E M
Segno, 0+ e 1- esponente mantissa
Esempio con 32 bit: 1 bit per S, 8 bit per E, 23 bit per M
S può essere 0 o 1 (+ o-).
E (in notazione polarizzata) va da un esponente minimo di-128 ad un massimo di +127.
5
M è sempre un numero con valore tendente a 1 e sono rappresentabili rappresentazioni, con 23 bit si
2
codificano 24 cifre della mantissa (1 bit nascosto, cioè la parte intera si sottintende uguale a 0).
Si parla di dinamica per descrivere l’intervallo dei numeri rappresentabili, nel caso di 32 bit la dinamica è: -
127 127 127 127
≤ N ≤ quindi il più grande numero rappresentabile è quindi 1* per S=0 e il più
2 2
2 2 127 127
piccolo numero rappresentabile è 1* per S=1 cioè - .
2 2
Per analizzare meglio la dinamica consideriamo che la mantissa del numero più grande rappresentabile &eg