Aritmetica dei Calcolatori

Похожие документы
1.2f: Operazioni Binarie

Lezione 3. I numeri relativi

Rappresentazione dei Dati

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Codifica binaria. Rappresentazioni medianti basi diverse

I.4 Rappresentazione dell informazione - Numeri con segno

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori

Rappresentazione. Notazione in complemento a 2. Complemento a due su 3 e 4 bit Complemento a due

Notazione posizionale. Codifica binaria. Rappresentazioni medianti basi diverse. Multipli del byte

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Soluzioni Esercizi su rappresentazione binaria dell informazione

CONVERSIONE BINARIO DECIMALE NB: Convertire in decimale il numero binario N = N =

Rappresentazione in complemento a 2: caratteristiche generali

La codifica dei numeri

Rappresentazione dei Numeri

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Somma di numeri binari

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dell Informazione

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Rappresentazione e Codifica dell Informazione

APPUNTI DI INFORMATICA

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

04 Aritmetica del calcolatore

Rappresentazione dei numeri interi in un calcolatore

La codifica. dell informazione

Esercizi. Soluzioni degli esercizi. Soluzioni degli esercizi. Soluzioni degli esercizi. Convertire in formato decimale i seguenti numeri binari:

La codifica. dell informazione

Esercitazioni su rappresentazione dei numeri e aritmetica. Interi unsigned in base 2

Corso di Architettura degli Elaboratori

Aritmetica binaria e circuiti aritmetici

Esercizi. Soluzioni degli esercizi. Soluzioni degli esercizi. Soluzioni degli esercizi

Rappresentazione di numeri interi

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Rappresentazione dei numeri binari.

Conversione binario-decimale. Interi unsigned in base 2. Esercitazioni su rappresentazione. dei numeri e aritmetica

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Aritmetica dei calcolatori. La rappresentazione dei numeri

Rappresentazione dei numeri

Calcolo numerico e programmazione Rappresentazione dei numeri

Algoritmi Istruzioni che operano su dati. Per scrivere un programma è necessario. che l esecutore automatico sia in grado di.

Modulo e segno Complemento a 1 (CA1) Complemento a 2 (CA2)

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

Codifica. Rappresentazione di numeri in memoria

Транскрипт:

Aritmetica dei Calcolatori Luca Abeni March 5, 2014

Codifica dei Numeri Interi k bit codificano 2 k simboli/valori/numeri... Si usa la base 2 per codificare i numeri Numeri naturali n N: valori da 0 a 2 k 1 Come codificare numeri interi z Z? Problema: numeri negativi z < 0 z / N Si codificano sempre 2 k valori...... Ma quali??? Varie possibilità: modulo e segno, complemento a 1, complemento a 2,... IEP1 Luca Abeni 2 / 15

Codifica con Modulo e Segno Idea semplice: si usano k 1 bit per rappresentare il valore assoluto (modulo) del numero......ed un bit per codificare il segno! bit più significativo a 0: numero positivo bit più significativo a 1: numero negativo Valori codificati: da 2 k 1 +1 a 2 k 1 1 2 k 1 valori??? Come mai??? Due diverse sequenze di bit per codificare lo 0? (+0 e 0???) 1 k 1 k 1 {}}{{}}{ 000...0 vs 0000...0 IEP1 Luca Abeni 3 / 15

Codifica in Complemento a 1 Altra idea semplice: i numeri negativi si rappresentano facendo il complemento ad 1 del valore assoluto Numero positivo: rappresento il valore assoluto Numero negativo: cambio 0 in 1 e viceversa (complemento a 1 di k {}}{ x: 1...1 x = (2 k 1) x) Numeri positivi: ancora, bit più significativo a 0 Ancora, due rappresentazioni dello 0 (+0 e 0)? k {}}{ 111...1 vs k {}}{ 000...0 Modulo e segno Non facile da sommare... Complemento a 1 a volte le cose vanno meglio (se il bit più significativo non da riporto, OK) IEP1 Luca Abeni 4 / 15

Somma di Numeri in Complemento a 1 Algoritmo per sommare numeri interi codificati in complemento a 1: 1. Sommare le rappresentazioni dei due numeri 2. Se la somma del bit più significativo da riporto, sommarlo al risultato 3. Se i riporti delle due cifre più significative della nuova somma sono uguali, il risultato è attendibile 4. Altrimenti, il risultato non è rappresentabile su k bit Esempio: 6+ 3 (codifica su 5 bit) 6 = 00110; 3 = 00011 = 11100 00010+1 = 00011 (= 3) 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 IEP1 Luca Abeni 5 / 15

Complemento a 2 Complemento a 2 di un numero binario: Scorrere i bit a partire dalla destra Fino al primo bit che vale 1 (compreso), lasciare invariato A partire dal bit successivo, fare il complemento a 1 Equivalente a fare il complemento a 1 e poi sommare 1 Complemento in base 2 di x: 2 k x = 1 k {}}{ 0...0 x Esempio: complemento in base 2 di 87 (= 1010111 2 ) L 1 più a destra rimane invariato; inverto le altre cifre. 0101001 2 7 2 1010111 2 = 10000000 2 1010111 2 = 101001 Complemento a 1 +1: 0101000+1 = 101001 IEP1 Luca Abeni 6 / 15

Codifica in Complemento a 2 Numeri positivi: rappresentare il valore assoluto Numeri negativi: rappresentati usando il complemento a 2 del valore assoluto Ancora, il bit più significativo indica il segno Stavolta, la codifica dello 0 è unica Codifica i numeri da 2 k 1 a 2 k 1 1 E stavolta, la somma è semplice... x+( y) = x+(2 k y) = 2 k +x y......su k bit, questo è equivalente a x y IEP1 Luca Abeni 7 / 15

Esempi di Codifica decimale modulo e segno complemento a 1 complemento a 2-4 100-3 111 100 101-2 110 101 110-1 101 110 111 0 100 / 000 111 / 000 000 1 001 001 001 2 010 010 010 3 011 011 011 IEP1 Luca Abeni 8 / 15

Somme e Sottrazioni in Base 2 Come normalmente in base 10 (numeri in colonna, riporto, etc...) Se si usa complemento a 2, funziona anche con numeri negativi Ma occhio agli overflow!!! Overflow? Numeri su k bit, ma risultato non rappresentabile su k bit Matematica dell orologio... Esempi: k = 6,5+12 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 k = 7,5 8; k = 7, 5+8; k = 7, 64 8; k = 7,63+1; IEP1 Luca Abeni 9 / 15

Esempi Senza Overflow k = 7,5 8 5 = 0000101 2 ; 8 = 0001000 2 +1 2 = 1110111 2 +1 2 = 1111000 2 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1111101 2 =... (1111101 2 +1 2 ) = 0000011 2 = 3 k = 7, 5+8 5 = 0000101 2 +1 = 1111010 2 +1 2 = 1111011; 8 = 0001000 2 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0000011 2 = 3 IEP1 Luca Abeni 10 / 15

Esempio di Overflow k = 7, 64 8 64 = 1000000 2 ; 64 = 1000000 2 +1 2 = 0111111 2 +1 2 = 1000000 2 8 = 0001000 2 ; 8 = 0001000 2 +1 2 = 1110111 2 +1 2 = 1111000 2 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0111000 2 = 56... WTH??? Sommando 2 numeri negativi si ottiene un numero positivo??? 64 8 = 72... Posso rappresentare numeri fra 2 6 = 64 e 2 6 1 = 63... 72 non è rappresentabile!!! IEP1 Luca Abeni 11 / 15

Esempio di Overflow k = 7,63+1 63 = 0111111 2 1 = 00000001 2 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1000000 2 = (1000000 2 +1) = (0111111 2 +1 2 ) = 1000000 = 64... WTH??? Sommando 2 numeri positivi si ottiene un numero negativo??? Ancora, il risultato corretto (63 + 1 = 64) non sarebbe rappresentabile... IEP1 Luca Abeni 12 / 15

Esempi ed Esercizi Numeri su k = 7 bit, codificati in complemento a 2 Verificare se c è overflow 0110110 + 0000011 Somma di due numeri positivi: mi aspetto risultato positivo... 1001010 + 1111101 Somma di due numeri negativi: mi aspetto risultato negativo... 1001010 + 1100000 0100000 + 1111010 1100000 + 0000110 IEP1 Luca Abeni 13 / 15

La Matematica dell Orologio Aritmetica modulare: considero solo n numeri interi Numeri da 0 a n 1......O numeri da n/2 a n/2 1... Quando contando arrivo al numero più grande, riparto dal più piccolo Se i numeri vanno da 0 a n 1, contando dopo (n 1)+1 = 0 (contando dopo n 1 riparto da 0) Se i numeri vanno da n/2 a n/2 1, contando dopo n/2 1+1 = n/2 È come se i numeri stessero sul quadrante di un orologio! Definizione più formale: si usano classi di congruenza modulo n Relazione di equivalenza fra due numeri: a b a%n = b%n IEP1 Luca Abeni 14 / 15

Cosa Succede in Caso di Overflow? Operazioni su numeri naturali rappresentati su k bit aritmetica modulo 2 k Calcolando a+b si ottiene in realtà (a+b)%2 k......se il risultato della somma è < 2 k, allora (a+b)%2 k = a+b no overflow! Altrimenti, in risultato appare strano... Usando rappresentazione in complemento a 2 dei numeri interi, il discorso è analogo: Se il risultato di una somma a+b è compreso fra 2 k 1 e 2 k 1 1, allora no overflow (risultato corretto)! Se il a+b < 2 k 1, ottengo a+b+2 k. Positivo!!! Overflow! Se il a+b > 2 k 1 1, ottengo a+b 2 k. Negativo!! Overflow! IEP1 Luca Abeni 15 / 15