Sei sulla pagina 1di 7

RIEPILOGO DELLE RAPPRESENTAZIONI DEI NUMERI

BINARI RELATIVI
Si dicono numeri relativi tutti i numeri dotati di segno (positivo o negativo).
Es +10; -15; +254; -47/3; 2/18 ecc.

RAPPRESENTAZIONE IN MODULO E SEGNO


Modulo = Valore assoluto di un numero. (Si indica con 2 barre verticali)
Il valore assoluto di un numero è uguale al numero stesso se il numero è positivo o nullo, è
l'opposto del numero se il numero è negativo.
Es.
|-7| = 7 |15| = 15 |-21| = 21 |33| = 33

In questa rappresentazione si utilizza il bit più significativo (MSB = Most Significant Bit) (quello più a
sinistra) per rappresenta il segno.
L’MSB prende anche il nome di bit di segno.

Se l’MSB vale 1 il numero sarà negativo. Es 1001 = -1 1010 = -2


Se l’MSB vale 0 il numero sarà positivo. Es 0001 = 1 0010 = 2
Altri esempi:

*DOVE n è il numero di bit utilizzati per rappresentare il numero.


Il range di rappresentazione dei numeri tenendo conto che uno è riservato al segno, passa da
[0, 2n – 1] a [-2n-1+1, 2n-1-1] perché:

• il -1 ad esponente è dovuto al fatto che viene “perso” un bit dato che serve per
rappresentare il segno del numero.
• Il -1 e +1 sulla base sono dovuti al fatto che il numero 0 (zero) ha due rappresentazioni.

Esempio con n=3


Quindi range = [-2n-1+1, 2n-1-1] -> [-23-1+1, 23-1-1] -> [-22+1, 22-1] -> [-3, +3]

Esempio di rappresentazione di numeri positivi e negativi con 3 bit.

N.B.
La rappresentazione con Modulo e Segno ha la caratteristica di avere un intervallo di
rappresentazione simmetrico e una doppia rappresentazione dello 0. (*) vedi testo in verde sopra
del perché.
Operazioni con rappresentazione modulo e segno

Bisogna tener presente che questa rappresentazione non è indicata per effettuare operazione
tra i numeri in quanto risulta problematica, soprattutto per quanto riguarda l’operazione di
sottrazione.

ADDIZIONE
Per quanto riguarda la somma algebrica tra due numeri codificati attraverso questa
rappresentazione, bisogna procedere così:

• Se gli addendi sono concordi (stesso segno) la somma è concorde (ha lo stesso segno)
ad essi e ha come modulo la somma dei moduli.
Si verifica l’overflow nel caso in cui si ha un riporto sulla colonna più a sinistra.

• Se gli addendi sono discordi (segno diverso) la somma è concorde (ha lo stesso segno)
con l’addendo di modulo maggiore e ha come modulo la differenza tra il modulo
maggiore e quello minore.
Praticamente si sottrae all’addendo maggiore, l’opposto dell’addendo di modulo minore.
IMPOSSIBILE AVERE OVERFLOW.
Ecco qualche esempio pratico.
RAPPRESENTAZIONE IN COMPLEMENTO ALLA BASE
• Complemento a 1
• Complemento a 2
In queste rappresentazioni le cifre che codificano il numero hanno un significato leggermente
diverso rispetto alle altre rappresentazioni:

• Alla cifra più significativa è associato un valore negativo


• A tutte le altre cifre un valore positivo

COMPLEMENTO A 1
Per quanto riguarda questa rappresentazione abbreviata CA1 viene effettuata su n bit e si effettua
così:

• I numeri positivi vengono rappresentati come i primi 2n-1 numeri naturali


• I numeri negativi come complemento a 1 del corrispondente binario positivo.
Vediamo qualche esempio.

CA1(7) -> 0111 CA1(1) -> 0001 CA1(10) -> 01100


CA1(-7) -> comp(0111) = 1000 CA1(-1) -> comp(0001) = 1110 CA1(-10) -> comp(01100) = 10011

Ulteriore esempio di rappresentazione dei primi 16 numeri naturali.

Prima si rappresentano i numeri positivi e poi i


negativi si ottengono come complemento a 1 del
corrispettivo positivo.

N.B. I numeri POSITIVI iniziano SEMPRE per 0, i numeri NEGATIVI iniziano SEMPRE per 1.
Visto che anche qui lo 0 ha una doppia rappresentazione il range rimane lo stesso della
rappresentazione in modulo e segno ovvero [-2n-1+1, 2n-1-1]
Per convertire un numero codificato con questa rappresentazione da base binaria a base decimale
bisogna ricordarsi che:

• La prima cifra ha peso: -2n-1+1


• Le altre cifre 2n-1 come nel binario.

COMPLEMENTO A 2
La rappresentazione in complemento a 2 si effettua così:

• I numeri positivi vengono rappresentati come i primi 2n-1 numeri naturali


• I numeri negativi si somma 1 alla rappresentazione in complemento a 1 (si fa complemento a
2 del numero positivo in pratica)

Vediamo qualche esempio:

Un ulteriore esempio della rappresentazione dei primi 15 numeri naturali con 5 bit (n = 5)

Anche qui, prima si rappresenta il numero


positivo e poi per il negativo si effettua il
complemento a 2. (CP1 + 1)
Guardando l’esempio precedente si noti che questa volta lo 0 ha una SOLA rappresentazione,
questo decreta un intervallo asimmetrico (quello negativo ha un elemento in più, perché c’è solo lo
0 “positivo”).
Il range diventa quindi:
[-2n-1, 2n-1-1]

Con n = 4 si ha quindi:

ERRORI PIU’ COMUNI


1. Non decidere a priori con quanti bit rappresentare il numero!!!
Nell’operazione di complemento a 1 il numero di bit fa la differenza perché
CA1(0001) <> CA1(01)

Es.

2. Complementare anche i numeri positivi!!!

Se avessi complementato 15 avrei ottenuto: (n = 5) per il range


CA2(15) = 01111 -> CA1(01111) = 10000 + 1 = 10001 e questo non è +15 anche perché comincia per
1.
Non a caso questo è -15.
TABELLA RIEPILOGATIVA RAPPRESENTAZIONI E RANGE NUMERICI
RAPPRESENTABILI

Tipo Range
Ammette numeri negativi?
rappresentazione rappresentabile

Senza segno [0, 2n-1] NO


Modulo e segno [-2n-1+1, 2n-1-1] SI
Complemento a 1 [-2n-1+1, 2n-1-1] SI
Complemento a 2 [-2n-1, 2n-1-1] SI

Potrebbero piacerti anche