NUMERI NATURALI: INTERVALLO DI VALORI RAPPRESENTABILI INFORMAZIONI NUMERICHE

Documenti analoghi
TECNOLOGIA DIGITALE. CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale

CPU, memoria centrale ae e dspost dispositivi sono o realizzati con tecnologia elettronica digitale

RAPPRESENTAZIONE DELL INFORMAZIONE

Anno Accademico Lezione 10 : Conversione di Base (p. 3) Lunedì 6 Dicembre 2010

Rappresentazione in complemento a 2: caratteristiche generali

Rapida Nota sulla Rappresentazione dei Caratteri

TECNOLOGIA DIGITALE. TECNOLOGIA DIGITALE (segue)

1.2 Concetti base dell Informatica: Informazione

Interi positivi e negativi

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore. Rappresentazione dei numeri

Rappresentazione dei numeri interi in un calcolatore

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

I.4 Rappresentazione dell informazione - Numeri con segno

Lezione 3. I numeri relativi

RAPPRESENTAZIONE DELL INFORMAZIONE

Rappresentazione e Codifica dell Informazione

Codifica binaria: - numeri interi relativi -

Aritmetica in complemento a due. 29 settembre 2017

Informazione binaria: - rappresentazione dei numeri naturali e interi relativi -

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

Rappresentazione numeri con e senza segno ([PH] par. 2.4) Giovedì 1 ottobre 2015 (ore 9-13)

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

Rappresentazione dei numeri

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

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

Rappresentazione dell'informazione

Rappresentazione dei numeri in un calcolatore

Rappresentazione di numeri interi

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

Rappresentazione dell informazione. Argomenti trattati: Codifica: Teoria generale. Proprietà di una codifica:

Conversione binario-ottale/esadecimale. Conversione binario-ottale/esadecimale. Rappresentazione di Numeri Interi Positivi (numeri naturali)

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

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori

Argomenti trattati: Rappresentazione dell informazione. Proprietà di una codifica: Codifica: Teoria generale

La codifica. dell informazione

Rappresentazione binaria

Rappresentazione numeri relativi e reali

Rappresentazione in virgola mobile. 4 ottobre 2018

Codifica binaria. Rappresentazioni medianti basi diverse

Architettura degli elaboratori - 2 -

Rappresentazione binaria

Rappresentazione dell' informazione. Cenni, necessari per capire le caratteristiche dei tipi di dato e delle limitazioni dell'aritmetica del computer

La codifica. dell informazione. Codifica dei numeri. (continua) Codifica dei numeri. Codifica dei numeri: il sistema decimale

La rappresentazione dei dati

Rappresentazione della informazione

Rappresentazioni numeriche

Fondamenti di informatica

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

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

Architettura degli Elaboratori e Laboratorio

Rappresentazione dell informazione

Rappresentazione dei Numeri

Cap. 2 - Rappresentazione in base 2 dei numeri interi

La codifica. dell informazione

I.4 Rappresentazione dell informazione

Sistemi di Numerazione Binaria

Corso di Informatica

Unita aritmetica e logica. Input e output della ALU. Rappresentazione degli interi. Rappresentazione in modulo e segno. Aritmetica del calcolatore

Operazioni sui binari

1.2f: Operazioni Binarie

La codifica delle informazioni numeriche ed alfanumeriche.

Codifica dell informazione numerica

Rappresentazione in virgola mobile. 5 ottobre 2015

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

Rappresentazione dei numeri

Unità Didattica 2 Rappresentazione dei Dati

Rappresentazione delle frazioni proprie Aritmetica in binario Barbara Masucci

1-Rappresentazione dell informazione

12BHD - Informatica - soluzioni Appendice B del quaderno di testo - v. 1.05

La "macchina" da calcolo

Rappresentazione dell informazione. Rappresentazione dell informazione. Rappresentazione dell informazione. Codifica dei numeri

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

Rappresentazione dell informazione

Codifica dell informazione numerica

Corso di Laurea Ingegneria Civile Fondamenti di Informatica

Un ripasso di aritmetica: Rappresentazione decimale - limitazioni

La codifica dei numeri

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

UD 1.2e: La codifica Digitale dei Numeri CODIFICA DIGITALE DEI NUMERI

Modulo 1: Le I.C.T. UD 1.2e: La codifica Digitale dei Numeri

Rappresentazione dell informazione

La rappresentazione dell informazione

Aritmetica dei Calcolatori

Codifica dell informazione numerica. Matteo Re, Nicola Basilico,

Operazioni artimetiche

Corso di Architettura degli Elaboratori

Parte III Indice. Rappresentazione dei valori frazionari. Esercizi. in virgola fissa in virgola mobile III.1. Fondamenti di Informatica

Corso di Architettura degli Elaboratori

Transcript:

INFORMAZIONI NUMERICHE La rappresentazione delle informazioni numeriche è di particolare rilevanza Abbiamo già discusso i numeri naturali (interi senza segno) N = { 0,1,2,3, } Dobbiamo discutere come rappresentare i numeri interi (con segno) Z = { -x, x N - {0}} N.. e i numeri reali R, con particolare attenzione alle approssimazioni necessarie. numeri interi 1 NUMERI NATURALI: INTERVALLO DI VALORI RAPPRESENTABILI Con N bit, si possono fare 2 N combinazioni Si rappresentano così i numeri da 0 a 2 N -1 Esempi con 8 bit, [ 0. 255 ] In C: unsigned char = byte con 16 bit, [ 0. 65.535 ] In C: unsigned short int (su alcuni compilatori) In C: unsigned int (su alcuni compilatori) con 32 bit, [ 0. 4.294.967.295 ] In C: unsigned int (su alcuni compilatori) In C: unsigned long int (su molti compilatori) numeri interi 2 Dominio: Z = {, -2,-1,0,1,2,3, } Rappresentare gli interi in un elaboratore pone alcune problematiche: come rappresentare il segno meno? possibilmente, rendere semplice l esecuzione delle operazioni Magari usando gli stessi circuiti già usati per i numeri naturali? Due possibilità: rappresentazione in modulo e segno semplice e intuitiva ma inefficiente e complessa nella gestione delle operazioni non molto usata in pratica rappresentazione in complemento a due meno intuitiva, costruita ad hoc ma efficiente e capace di rendere semplice la gestione delle operazioni largamente usata numeri interi 3 numeri interi 4

Rappresentazione in modulo e segno un bit per rappresentare il segno 0 = + 1 = - N-1 bit per rappresentare il valore assoluto Esempi (su 8 bit, MSB rappresenta il segno): + 5 = 0 0000101-36 = 1 0100100 numeri interi 5 Rappresentazione in modulo e segno Difetti: due diverse rappresentazioni per lo zero + 0 = 00000000-0 = 10000000 occorrono algoritmi speciali per fare le operazioni se si adottano le usuali regole, non è verificata la proprietà X + (-X) = 0 occorrono regole (e quindi circuiti) ad hoc numeri interi 6 +5 0 0000101 Rappresentazione in modulo e segno -5 1 0000101 Difetti: --- ---------- 0 1 0001010 due diverse rappresentazioni per lo zero + 0 = 00000000 Cos è - 0 = questa 10000000 roba??? (+5) + (-5) = -10??? occorrono algoritmi speciali per fare le operazioni se si adottano le usuali regole, non è verificata la proprietà X + (-X) = 0 occorrono regole (e quindi circuiti) ad hoc numeri interi 7 Rappresentazione in complemento a due si vogliono poter usare le regole standard per fare le operazioni in particolare, si vuole che X + (-X) = 0 la rappresentazione dello zero sia unica anche a prezzo di una notazione più complessa, meno intuitiva, e magari non (completamente) posizionale. numeri interi 8

Rappresentazione in complemento a due idea: cambiare il peso del bit più significativo da +2 N-1 a -2 N-1 il peso degli altri bit rimane intoccato. Esempi (su 8 bit, MSB ha peso negativo): 0 0000101 = + 5 1 0000101 = -128 + 5 = - 123 1 1111101 = -128 + 125 = - 3 numeri interi 9 Rappresentazione in complemento a due idea: cambiare MSB=0 il peso numero del bit positivo più o nullo MSB=1 significativo da +2 N-1 numero a -2 N-1 negativo Ma nel secondo caso gli altri bit il peso degli altri non sono bit rimane il valore intoccato. assoluto! Esempi (su 8 bit, MSB ha peso negativo): 0 0000101 = + 5 1 0000101 = -128 + 5 = - 123 1 1111101 = -128 + 125 = - 3 numeri interi 10 NUMERI INTERI - INTERVALLO DI VALORI RAPPRESENTABILI Per determinare l'intervallo, osserviamo che: se MSB=0, è come per i naturali con N-1 bit da 0 a 2 N-1-1 Esempio: su 8 bit, [0,+127] se MSB=1, stesso intervallo traslato di -2 N-1 da -2 N-1 a -1 Esempio: su 8 bit, [-128,-1] Intervallo globale = unione [ -2 N-1, -2 N-1-1 ] con 8 bit, [ -128. +127 ] con 16 bit, [ -32.768. +32.767 ] con 32 bit, [ -2.147.483.648. +2.147.483.647 ] numeri interi 11 NUMERI INTERI - INTERVALLO DI VALORI RAPPRESENTABILI Per determinare Lo stesso l'intervallo, intervallo osserviamo che: se MSB=0, è come prima era per tutto i naturali sui positivi con [0...2 N-1 N bit -1] ora è metà sui positivi e metà sui da 0 a 2 N-1-1 negativi Esempio: [- 2 N-1... 2 N-1 su -1] 8 bit, [0,+127] se MSB=1, stesso lo zero intervallo rientra fra i traslato positivi di -2 N-1 da -2 N-1 a -1 Esempio: su 8 bit, [-128,-1] Intervallo globale = unione [ -2 N-1, -2 N-1-1 ] con 8 bit, [ -128. +127 ] con 16 bit, [ -32.768. +32.767 ] con 32 bit, [ -2.147.483.648. +2.147.483.647 ] numeri interi 12

Osservazione: poiché si opera su N bit, questa è in realtà una aritmetica mod 2 N La rappresentazione del numero v coincide con quella del numero v ± 2 N In particolare, la rappresentazione del negativo v coincide con quella del positivo v' = v + 2 N Questo è un naturale v = d n 2 n 1 n 1B + = 0 d B v' = + d n 2 n 1 n 1B + = 0 numeri interi 13 d B Esempio (8 bit, 2 N = 256): per calcolare la rappresentazione di -3 possiamo calcolare quella del naturale -3+256 = 253 E infatti con la definizione di compl. a 2 (2 N-1 = 128): -3 = -128 + 125 11111101 con il trucco sopra: -3 253 11111101 numeri interi 14 Come svolgere questo calcolo in pratica in modo semplice? Osserviamo che, se v<0: v = - v v = v + 2 N = 2 N - v che si può riscrivere come: v = (2 N -1) - v + 1 dove la quantità (2 N -1) è, in binario, una sequenza di N uno. numeri interi 15 Ma: se la quantità (2 N -1) è, in binario, una sequenza di N uno, la sottrazione (2 N -1) - v si limita a invertire tutti i bit della rappresentazione di v Infatti, ad esempio, su 8 bit: 2 8-1 = 11111111 se v = 01110101 (2 8-1) - v = 10001010 numeri interi 16

Conclusione: per calcolare il numero negativo - v, la cui rappresentazione coincide con quella del positivo v = (2 N -1) - v + 1, occorre prima invertire tutti i bit della rappresentazione di v (calcolando così (2 N -1) - v ) poi aggiungere 1 al risultato Algoritmo di complementazione a due Esempi v = -3 valore assoluto 3 00000011 inversione dei bit 11111100 somma con 1 11111101 v = -37 valore assoluto 37 00100101 inversione dei bit 11011010 somma con 1 11011011 numeri interi 17 numeri interi 18 CONVERSIONE STRINGA / NUMERO OPERAZIONI SU NUMERI INTERI Importante: l'algoritmo funziona anche a rovescio! stringa = 11111101 inversione dei bit 00000010 somma con 1 00000011 calcolo valore assoluto 3 stringa = 11011011 inversione dei bit 00100100 somma con 1 00100101 calcolo valore assoluto 37-3 -37 numeri interi 19 La rappresentazione in complemento a due rende possibile fare addizioni e sottrazioni con le usuali regole algebriche Un primo esempio: -5 + 11111011 +3 = 00000011 --- -------- -2 11111110 Funziona! numeri interi 20

OPERAZIONI SU NUMERI INTERI In certi casi occorre però una piccola convenzione: ignorare il riporto OPERAZIONI SU NUMERI INTERI Nelle sottrazioni, analogamente, può capitare di dover ignorare il prestito Un altro esempio: -1 + 11111111-5 = 11111011 --- -------- -6 (1)11111010 Funziona purché si ignori il riporto! +3 - (1)00000011 - +3 - (1)00000011 - +5 = 00000101 = -5 = 11111011 = -- -------- -- -------- -2 11111110 +8 00001000 Ma.. perché ignorando prestiti e riporti funziona?? numeri interi 21 numeri interi 22 OPERAZIONI: PERCHÉ FUNZIONANO Il motivo è semplice: poiché si opera su N bit, questa è in realtà una aritmetica modulare di modulo 2 N ma ignorando riporti (o inserendo prestiti) si introduce proprio un errore pari a 2 N quindi, mod 2 N tale errore scompare! Attenzione: possono però prodursi errori se viene invaso il bit più significativo (bit di segno) Esempio ERRORI NELLE OPERAZIONI 60 + 00111100 75 = 01100011 ----- -------- 135 10011111 Errore! Si è invaso il bit di segno, il risultato è negativo! Questo errore si chiama invasione del bit di segno ed è una forma di overflow Può capitare solo sommando due numeri dello stesso segno (due positivi o due negativi) numeri interi 23 numeri interi 24