Title: Rappresentazione binaria dei numeri interi senza segno
1Rappresentazione binariadei numeri interi senza
segno
2Conversione Decimale-Binario 55 mod 2 1
a0 (55 div 2) mod 2 27 mod 2 1 a1 ((55 div
2) div 2) mod 2 (27 div 2) mod 213 mod 21
a2 (13 div 2) mod 2 6 mod 2 0 a3 (6 div 2)
mod 2 3 mod 2 1 a4 (3 div 2) mod 2 1 mod 2
1 a5 Dunque 55101101112
- Conversione Binario-Esadecimale
- Raggruppo i bit a blocchi di 4 11 0111
- Converto ciascun blocco in base 16
- 112316 01112716
- Dunque 1101112 3716
3Conversione Binario-Decimale 01010010 020121
022023124025126027 216648210
- Conversione Binario-Esadecimale
- Raggruppo i bit a blocchi di 4 0101 0010
- Converto ciascun blocco in base 16
- 01012516 00102216
- gt5216
452
82
10100111
167
62
- Conversione Esadecimale-Binario
- Traduco ciascuna cifra esadecimale in un blocco
di 4 bits A16 1010 232110102 716 710
22212001112 - Il binario corrispondente si ottiene sostituendo
ciascuna cifra esadecimale con il relativo blocco
di 4 bit - A716101001112
-
Conversione Esadecimale-Decimale A7 101617160
10167167 3E 3161E161481462
5Somma tra Numeri Binari Interi Positivi
- Regole base
- 000
- 01101
- 110 con riporto di 1
- 11(1)1 con rip.1, dove (1) e il riporto
proveniente dallo step precedente
Esempio 0 0 0 0 1 1 1 0 riporti 0 0 1
0 1 1 1 0 0 1 0 0 0 1 1 1
------------------- 0 1 1 1 0 1 0 1 1 0 0 0 1
1 1 0 riporti 1 0 1 0 1 1 1 0 1 1
0 0 0 1 1 1 ------------------- 1 1 1 1 0
1 0 1
Un trabocco indica un overflow
6Sottrazione tra Numeri Binari Interi Positivi
- Regole base
- 0-00
- 0-11 con prestito di 1
- 1-01
- 1-10
Esempio 0 1 0 0 0 1 1 1 prestiti 1 0 1
0 1 1 1 0 - 0 1 0 0 0 1 1 1
------------------- 0 1 1 0 0 1 1 1 1 1 0 1 1
1 1 1 prestiti 1 0 1 0 0 1 1 0 - 1 1
0 0 0 1 1 1 ------------------- 1 1 0 1 1
1 1 1
Un trabocco indica un underflow.
7Moltiplicazione tra Numeri Binari Interi Positivi
00110 x 00101 00110 00000 00110
00000 00000 000011110
- La moltiplicazione puo essere realizzata
banalmente sommando al moltiplicando se stesso,
un numero di volte pari al valore del
moltiplicatore. 5355515. - Assumendo che la somma abbia costo costante
operando su addendi rappresentabili con un numero
di bits noto a priori, tale algoritmo ha
complessità computazionale pari a O(N), dove N è
il valore del moltiplicatore. - Se moltiplicando e moltiplicatore sono
rappresentati con k bits, il prodotto può
richiedere fino a un max di 2k bits per la sua
rappresentazione.
somme parziali
8Moltiplicazione tra Numeri Binari Interi
Positivi Potenze di 2
- Nel caso di moltiplicazione per potenza k-esima
di 2 il risultato è uno shift a sinistra di k
posizioni
9Divisione tra Numeri Binari Interi Positivi
Verifichiamo la correttezza del calcolo
1001 10001 1001 0000 0000 0000
1001 10011001 0010 (resto) 10011011
10011011 1001 1001 10001 00001011
1001 0010
quoziente
resto
10Divisione tra Numeri Binari Interi Positivi
Potenze di 2
- Nel caso di divisione per potenza k-esima di 2 il
risultato è uno shift a destra di k posizioni
10011011 1000 1000 10011 0001101
1000 1011 1000 11
11Rappresentazione binariadei numeri interi con
segno
12101011012 1432128 16510 (senza
segno) 101011012-1(14832)-4510 (segno e
modulo) 101011012-1271432-9110
(complemento a 2) per verificare a) invertiamo
1 con 0 e viceversa 0101000102, b) sommiamo
1 010100011291
Proprietà della rappresentazione in complemento a
2 1) Loperazione di cambiamento di segno è
eseguibile complementando alla base 2) La
sottrazione si può ricondurre ad una somma (vedi
prox slide) 3) E possibile rappresentare lo
stesso numero con un numero maggiore di bit
semplicemente copiando il bit
significativo es -71010012 (con 4
bit)111110012 (con 8 bit) 11111111111110012
13Somma tra Numeri Binari in Complemento a 2
- Siano a e b due numeri e sia R(a) e R(b) la
rappresentazione di a e b in complemento alla
base (ad es. base 2) - Sommando R(a) ed R(b), e ignorando leventuale
riporto dalla posizione più significativa,
otteniamo R(ab). - A meno che non vi sia discordanza tra il segno
del risultato e quello comune dei due addendi
(ovvero agt0,bgt0,ablt0 oppure alt0,blt0,abgt0) in
tal caso si ha un supero di capacità.
001021101211112 2 (-3) -1
riporto 0000 0010 1101 1
111 0110201112OVERFLOW 6 7 13gt7!
riporto 0110 0110 0111 11
01
- In generale per calcolare a b basta
- Trovare il complemento a 2 di b, cioè -b
- Sommare a(-b)
14Somma tra Numeri Binari in Complemento a 2
- Siano a e b due numeri e sia R(a) e R(b) la
rappresentazione di a e b in complemento alla
base (ad es. base 2) - Sommando R(a) ed R(b), e ignorando leventuale
riporto dalla posizione più significativa,
otteniamo R(ab). - A meno che non vi sia discordanza tra il segno
del risultato e quello comune dei due addendi
(ovvero agt0,bgt0,ablt0 oppure alt0,blt0,abgt0) in
tal caso si ha un supero di capacità.
1111210002OVERFLOW -1 (-8) -9lt-8 riporto
1000 1111 1000 0111 01102
111120111 6 (-1) 5 riporto
1110 0110 1111 0101
Loverflow è possibile solo se gli addendi hanno
segno comune!