Esercitazioni su rappresentazione dei numeri e aritmetica

Slides:



Advertisements
Presentazioni simili
Dall’informazione al linguaggio macchina
Advertisements

Rappresentazioni numeriche
1 I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI.
Informatica Generale Susanna Pelagatti
Fondamenti di Informatica
Sistemi di numerazione
Rappresentazione di Numeri Reali
Rappresentazioni dei numeri non interi A. Ferrari.
Rappresentazioni numeriche
Sistemi di numerazione
Trasmissione delle informazioni
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
1 © 1999 Roberto Bisiani Rappresentazione delle informazioni n Occorre un codice n Legato alla tecnologia usata Robustezza Semplicita Economicita.
Algebra binaria Luglio 2002 Luglio 2002 Algebra binaria.
Luglio 2002Complementi di algebra binaria1 Complememti di algebra binaria Luglio 2002.
Esercitazioni su circuiti combinatori
Rappresentazione dei numeri razionali
27+ 12= Risultato troppo grande = = 39 = -25 errore di overflow in binario =
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 3 Codifica binaria.
A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Somma e differenza di due numeri in C2Somma e differenza di due numeri in C2 Half AdderHalf.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 Complemento a MComplemento a M Rappresentazione di numeri con segnoRappresentazione di numeri.
A.S.E.5.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 5 Rappresentazione di numeri con segnoRappresentazione di numeri con segno –Modulo e segno (MS)
Sistemi di Numerazione
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)
Ottobre Arch. degli elab. Mod. A – 1. Rappresentazione dellinformazione1 Rappresentazione dei numeri interi.
Confronto di due signed (in compl. a 2) Caso 1: numeri dello stesso segno Non ci può essere overflow (sottraendo, viene fuori un numero più piccolo in.
Rappresentazione dei dati
Esistono 10 tipi di persone al mondo: Quelli che conoscono il codice binario & Quelli che non lo conoscono.
Rappresentazioni numeriche
Rappresentazione binaria dei numeri interi senza segno.
Rappresentazione dei numeri reali
1 Sistemi Digitali. 2 Definizione Analog Waveform Time Voltage (V) 0 5 Digital Waveform Time Voltage (V)
Rappresentazioni numeriche. Introduzione Un calcolatore elettronico dispone di uno spazio finito per memorizzare le cifre che esprimono un valore numerico.
I numeri relativi by iprof.
4) Rappresentazione dei dati in memoria
Cos’è un problema?.
Il sistema binario.
Codifica binaria Rappresentazione di numeri
Rappresentazione di numeri relativi (interi con segno)
Usare rappresentazioni di lunghezza fissa porta ad avere valori non rappresentabili: Overflow indica un errore nella rappresentazione del risultato in.
Conversione binario - ottale/esadecimale
Conversione binario - ottale/esadecimale
Rappresentazione di Numeri Reali
1 © 1999 Roberto Bisiani Rappresentazione delle informazioni n Occorre un codice n Legato alla tecnologia usata Robustezza Semplicita Economicita.
Rappresentazione dell’informazione
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
ALGEBRA.
ARITMETICA BINARIA.
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori (Reti Locali, Internet)
I numeri interi relativi
Linguaggi e Programmazione per l’Informatica Musicale
Linguaggi e Programmazione per l’Informatica Musicale
Process synchronization
Rappresentazione dell’Informazione
Rappresentazione dell’informazione nel calcolatore.
Rappresentazioni a lunghezza fissa: problemi
Fondamenti di Informatica
Rappresentazione dell'informazione
La codifica dei numeri.
Conversione binario-ottale/esadecimale
Rappresentazione degli interi
Rappresentazione dei numeri
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Transcript della presentazione:

Esercitazioni su rappresentazione dei numeri e aritmetica Salvatore Orlando & Marta Simeoni

Interi unsigned in base 2 Si utilizza un alfabeto binario A = {0,1}, dove 0 corrisponde al numero zero, e 1 corrisponde al numero uno dn-1...d1d0 con di di  {0,1} Qual è il numero rappresentato ? Quanti numeri sono rappresentabili su n bit? N = dn-1• 2n-1 + .... + d1• 21 + d0• 20 Con sequenze di n bit sono rappresentabili 2n numeri naturali (da 0 a 2n-1) 00….00 = 0 00….01 = 1 00….10 = 2 … 01….11 = 2n- 3 10….00 = 2n- 2 … 11….11 = 2n - 1 100….00 = 2n

Interi unsigned in base 2 I seguenti numeri naturali sono rappresentabili usando il numero di bit specificato ? 2010 su 5 bit ? 6410 su 6 bit ? 50010 su 9 bit ? 102510 su 10 bit ? Ricorda che: 20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 27 = 128 28 = 256 29 = 512 210 = 1024 .... SI NO SI NO

Conversione binario-decimale Esercizio: 11101012 = ???10 1·26 + 1·25 + 1·24 + 0·23 + 1·22 + 0·21 + 1·20 = 64 + 32 + 16 + 0 + 4 + 0 + 1 Soluzione: 11101012 = 11710

Conversione decimale-binario Esercizio: 10010 = ???2 100 : 2 = 50 resto 0 50 : 2 = 25 resto 0 25 : 2 = 12 resto 1 12 : 2 = 6 resto 0 6 : 2 = 3 resto 0 3 : 2 = 1 resto 1 1 : 2 = 0 resto 1 Soluzione: 10010 = 11001002

Conversione dec-bin: metodo più pratico Scriviamo direttamente il numero decimale come somma di potenze di 2 Per far questo, sottraiamo via via le potenze di 2, a partire dalle più significative Esercizio: 10310 = ???2 Ricorda che: 20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 27 = 128 28 = 256 29 = 512 210 = 1024 .... 103 - 64 = 39 ==> 26 39 - 32 = 7 ==> 25 7 - 4 = 3 ==> 22 3 - 2 = 1 ==> 21 1 - 1 = 0 ==> 20 Allora 10310 = 26 + 25 + 22 + 21 + 20 Soluzione: 10310 = 11001112

Conversione binario-ottale e viceversa Esercizio: 101011112 = ???8 Esercizio: 6358 = ???2 10 101 111 2 5 7 Soluzione: 101011112 = 2578 6 3 5 110 011 101 Soluzione: 6358 = 1100111018

Base 16 Quali dei seguenti numeri esadecimali sono numeri sono corretti? BED CAR 938 DEAD BEBE A129 ACI DECADE BAG DAD 4H3

Conversione binario-esadecimale e viceversa Esercizio: 1011111011012 = ???16 Esercizio: A3C916 = ???2 Ricorda che: 110 = 116 = 00012 210 = 216 = 00102 ...... 910 = 916 = 10012 1010 = A16 = 10102 1110 = B16 = 10112 1210 = C16 = 11002 1310 = D16 = 11012 1410 = E16 = 11102 1510 = F16 = 11112 1011 1110 1101 B E D Soluzione: 1011111011012 = BED16 = 305310 A 3 C 9 1010 0011 1100 1001 Soluzione: A3C916 = 10100011110010012 = 4192910

Interi signed in complemento a 2 Come si riconosce un numero positivo da uno negativo? Positivo  bit più significativo 0 Negativo  bit più significativo 1 Su n bit sono rappresentabili 2n interi unsigned (da 0 a 2n-1) Sempre su n bit, quanti interi signed in complemento a 2 ? 0.......00 = 0 0.......01 = 1 ... 01......11 = 2n-1-1 (massimo) 10......00 = 2n-1 (minimo) - 2n-1 = 2n-1 - 2n 11......11 = 2n - 1 -1 = 2n - 1 - 2n Dato N>0, il numero -N si rappresenta su n bit con il numero 2n - N -1  2n - 1 (1........1) - 2n-1  2n - 2n-1 = 2n-1 (10......0)

Complemento a 2 Esercizio: Rappresentare -3510 in complemento a 2 001000112 = +3510 11011100 + 1 = ------------ 11011101 Complemento a uno Soluzione: -3510 = 110111012

Complemento a 2 Esercizio: Rappresentare -35 in complemento a 2 001000112 = +3510 110111012 Inverti (complementa a 1) tutti i bit a sinistra del bit “1” meno significativo

Soluzione: il numero è -50010 Complemento a 2 Esercizio: Quale numero decimale rappresenta il seguente numero binario in complemento a due? 1111 1111 1111 1111 1111 1110 0000 11002 0000 0000 0000 0000 0000 0001 1111 01002 = 22 + 24 + 25 + 26 + 27 + 28 = 50010 Soluzione: il numero è -50010

Complemento a 2: somma e sottrazione Esercizio: eseguire 5310 - 3510 in complemento a due su 8 bit 3510 = 001000112 complementando: - 3510 = 110111012 11111101 5310 - 5310 + 001101012 + 3510 = (-35)10 = 110111012 = _______  _________ ________ 1810 1810 (1000100102) mod 28 000100102 = 1810

Complemento a 2: somma e sottrazione Esercizio: eseguire 1510 - 3810 in complemento a due su 8 bit 3810 = 001001102 complementando: - 3810 = 110110102 00011110 1510 - 1510 + 000011112 + 3810 = (-38)10 = 110110102 = _______  _________ ________ -2310 -2310 (0111010012) mod 28 000101112 = 2310

Overflow In quali dei seguenti casi si può ottenere overflow? somma di due numeri con segno concorde? somma di due numeri con segno discorde? sottrazione di due numeri con segno concorde? sottrazione di due numeri con segno discorde? SI NO NO SI

Esercizio Considerate i numeri esadecimali x1 = 7A x2 = 13 x3 = FF x4 = C1 x5 = 84 Scrivere i quattro numeri in codice binario a 8 bit Interpretare il codice binario in complemento a due ed eseguire le operazioni x1- x2; x3 + x4; x4 + x5; x4 - x1 x1 = 0111 1010 x2 = 0001 0011 x3 = 1111 1111 x4 = 1100 0001 x5 = 1000 0100 11111000 x1 01111010 + -x2 11101101 = _____________ (101100111) mod 28 = 01100111 overflow?

Esercizio (continua) 11111111 x3 11111111 + x4 11000001 = ___________ (111000000) mod 28 = 11000000 overflow? 10000000 x4 11000001 + x5 10000100 = ___________ (101000101) mod 28 = 01000101 overflow? 10000000 x4 11000001 + -x1 10000110 = ___________ (101000111) mod 28 = 01000111 overflow?

Esercizio - caso particolare Si ricorda che l’opposto del numero negativo più piccolo su n bit non può essere rappresentato in complemento a due codifica non simmetrica Supponiamo quindi di lavorare con rappresentazioni in complemento a due su 3 bit di dover effettuare la sottrazione x-y dove y=1002 è il minimo numero rappresentabile (y=-410) Esercizio: calcolare x-y usando il solito algoritmo, dove x=0012 000 X 001 + -Y 100 ______ (0101) mod 23 = 101 OVERFLOW, anche se riporti concordi !! Abbiamo infatti sottratto un numero negativo da un numero >= 0  il segno atteso è positivo Il complemento a due non ha effetto

Esercizio - caso particolare (continua) Esercizio: calcolare x-y, dove x=1112 poiché x=1112 allora x = -110 non dovremmo avere overflow, poiché vogliamo effettuare la somma algebrica di due numeri con segno discorde il risultato da ottenere è x-y=-110- (-410) = 310 100 X 111 + -Y 100 ______ (0011) mod 23 = 011 = 310 NO OVERFLOW , anche se riporti discordi !! Abbiamo infatti sottratto un numero negativo da un numero negativo => in questo caso non si può verificare overflow corretto Il complemento a due non ha effetto

Procedura generale per determinare l’OVERFLOW Alla luce dell’esempio precedente, guardare solo ai due ultimi riporti per controllare l’OVERFLOW potrebbe quindi portare a risultati erronei Segno 1o operando Segno 2o operando Segno atteso Operazione Solo in questi casi si può verificare un OVERFLOW. Possiamo controllarlo confrontando il bit di segno del risultato con il segno atteso. Somma + + + Somma + - qualsiasi Somma - + qualsiasi Somma - - - Sottrazione + + qualsiasi Sottrazione + - + Sottrazione - + - Sottrazione - - qualsiasi

Numeri con la virgola (virgola fissa) Data una base B, si assegnano: n cifre per rappresentare la parte intera m cifre per rappresentare la parte frazionaria In base B=2, abbiamo quindi m+n bit per parte intera e frazionazia m n Esempio: dn-1...d1d0 . d-1...d-m Qual è il numero rappresentato in base B? N = dn-1• Bn-1 + .... + d1• B1 + d0• B0 + d-1• B-1 + ... + d-m• B-m

Virgola fissa Esercizio: 23.62510 = ???2 (usare la rappresentazione in virgola fissa con n=8, m=8) Conversione parte intera: 23 : 2 = 11 resto 1 11 : 2 = 5 resto 1 5 : 2 = 2 resto 1 2 : 2 = 1 resto 0 1 : 2 = 0 resto 1 Conversione parte frazionaria: 0.625 x 2 = 1.25 parte intera 1 0.25 x 2 = 0.50 parte intera 0 0.50 x 2 = 1 parte intera 1 Soluzione: 23.62510 = 00010111.101000002

Numeri con virgola mobile Un numero reale R può essere scritto in base B come R = ± m • Be m = mantissa e = esponente B = base Esempi con B = 10 R1 = 3.1569 x 103 R2 = 2054.00035 x 10-6 R3 = 0.1635 x 102 R4 = 0.0091 x 10-12 Notazione scientifica: m = 0 . d-1...d-k Notazione scientifica normalizzata: m = d0 . d-1...d-k con d0  0

Numeri binari in virgola mobile Rappresentando mantissa ed esponente in binario in notazione scientifica normalizzata si ottengono numeri del tipo: ±1. ss....s • 2yy...y Si osservi che: Spostare la virgola (punto) a destra di n bit significa decrementare di n l’esponente es: 0.01 • 23 = 1.0 • 21 Infatti 1 • 2-2 • 23 = 1 • 21 Spostare la virgola (punto) a sinistra di n bit significa incrementare di n es: 100.011 • 23 = 1.00011 • 25 Infatti (1• 22 + 1• 2-2 + 1• 2-3) • 23 = (1• 20 + 1• 2-4 + 1• 2-5) • 25 25 + 21 + 20 = 25 + 21 + 20

Numeri FP Esercizio: 1010 = ???2 FP 1010 = 10102 = 1010.02 • 20 = 1.01 • 23 15110 = 128 + 16 + 4 + 2 + 1 = 100101112 0.2510 x 2 = 0.5010 parte intera 0 0.5010 x 2 = 110 parte intera 1 0.2510 = 0.012 Quindi = 151.2510 = 10010111.012 = 1.0010111012 • 27

Numeri FP Una volta fissato il numero di bit totali per la rappresentazione dei numeri razionali rimane da decidere Quanti bit assegnare per la mantissa ? (maggiore è il numero di bit e maggiore è l’accuratezza con cui si riescono a rappresentare i numeri) Quanti bit assegnare per l’esponente ? (aumentando i bit si aumenta l’intervallo dei numeri rappresentabili) OVERFLOW: si ha quando l’esponente positivo è troppo grande per poter essere rappresentato con il numero di bit assegnato all’esponente UNDERFLOW: si ha quando l’esponente negativo è troppo grande (in valore assoluto) per poter essere rappresentato con il numero di bit assegnato all’esponente

Numeri FP in standard IEEE 724 Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.010 • 2-38 ÷ 2.010 • 238 Standard IEEE754: Doppia precisione (64 bit) si riescono a rappresentare numeri 2.010 • 2-308 ÷ 2.010 • 2308