Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoFulvia Cenci Modificato 10 anni fa
1
Rappresentazione binaria dei numeri interi senza segno
2
Conversione 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 2=13 mod 2=1= 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: 55 10 =110111 2 Conversione Binario-Esadecimale: 1)Raggruppo i bit a blocchi di 4: 11 0111 2)Converto ciascun blocco in base 16 11 2 =3 16 0111 2 =7 16 Dunque: 110111 2 = 37 16 00110111 37
3
Conversione Binario-Decimale: 01010010=0*2 0 +1*2 1 +0*2 2 +0*2 3 +1*2 4 +0*2 5 +1*2 6 +0*2 7 = =2+16+64=82 10 Conversione Binario-Esadecimale: 1)Raggruppo i bit a blocchi di 4: 0101 0010 2)Converto ciascun blocco in base 16 0101 2 =5 16 0010 2 =2 16 =>52 16 82 52 00110111 37
4
Conversione Esadecimale-Decimale: A7=10*16 1 +7*16 0 =10*16+7=167 3E= 3*16 1 +E*16 1 =48+14=62 Conversione Esadecimale-Binario: 1)Traduco ciascuna cifra esadecimale in un blocco di 4 bits : A 16 = 10 10 = 2 3 +2 1 =1010 2 7 16 = 7 10 = 2 2 +2 1 +2 0 =0111 2 2)Il binario corrispondente si ottiene sostituendo ciascuna cifra esadecimale con il relativo blocco di 4 bit: A7 16 =10100111 2 167 52 00110111 37 82 62 10100111
5
Somma tra Numeri Binari Interi Positivi Regole base: 0+0=0 0+1=1+0=1 1+1=0 con riporto di 1 1+1+(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
6
Sottrazione tra Numeri Binari Interi Positivi Regole base: 0-0=0 0-1=1 con prestito di 1 1-0=1 1-1=0 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.
7
Moltiplicazione tra Numeri Binari Interi Positivi La moltiplicazione puo essere realizzata banalmente sommando al moltiplicando se stesso, un numero di volte pari al valore del moltiplicatore. 5*3=5+5+5=15. 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. 00110 x 00101 = 00110 00000 00110 00000 000011110 somme parziali
8
Moltiplicazione 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: 00110 x 10 = 00000 00110 001100 00110 x 100 = 00000 00110 0011000
9
Divisione tra Numeri Binari Interi Positivi 100110111001 100110001 00001011 1001 0010 Verifichiamo la correttezza del calcolo: 1001* 10001= 1001 0000 1001 10011001+ 0010= (resto) 10011011 resto quoziente
10
Divisione 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: 100110111000 100010011 0001101 1000 1011 1000 11
11
Rappresentazione binaria dei numeri interi con segno
12
10101101 2 = 1+4+32+128 =165 10 (senza segno) 10101101 2 =-1*(1+4+8+32)=-45 10 (segno e modulo) 10101101 2 =-1*2 7 +1+4+32=-91 10 (complemento a 2) per verificare: a) invertiamo 1 con 0 e viceversa: 010100010 2, b) sommiamo 1: 010100011 2 =91 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: -7 10 =1001 2 (con 4 bit)=11111001 2 (con 8 bit)= 1111111111111001 2
13
Somma 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(a+b). A meno che non vi sia discordanza tra il segno del risultato e quello comune dei due addendi (ovvero a>0,b>0,a+b 0): in tal caso si ha un supero di capacità. 0010 2 +1101 2 =1111 2 [2 + (-3) = -1] riporto 0000 0010+ 1101= 1111 0110 2 +0111 2 =OVERFLOW[6 + 7 = 13>7!] riporto 0110 0110 0111 1101 In generale per calcolare a – b basta: 1)Trovare il complemento a 2 di b, cioè -b 2)Sommare a+(-b)
14
Somma 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(a+b). A meno che non vi sia discordanza tra il segno del risultato e quello comune dei due addendi (ovvero a>0,b>0,a+b 0): in tal caso si ha un supero di capacità. 1111 2 +1000 2 =OVERFLOW [-1 + (-8) = -9<-8] riporto 1000 1111+ 1000= 0111 0110 2 +1111 2 =0111[6 + (-1) = 5] riporto 1110 0110 1111 0101 Loverflow è possibile solo se gli addendi hanno segno comune!
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.