Alessandro Pellegrini



Похожие документы
Informatica. Rappresentazione dei numeri Numerazione binaria

Codifica dei numeri negativi

2.12 Esercizi risolti

Informatica Generale 02 - Rappresentazione numeri razionali

Sistemi di Numerazione Binaria NB.1

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

4 3 4 = 4 x x x 10 0 aaa

Codifica binaria dei numeri

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Elementi di informatica

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

SISTEMI DI NUMERAZIONE E CODICI

= 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

Esercitazione Informatica I AA Nicola Paoletti

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico

4. Operazioni aritmetiche con i numeri binari

Rappresentazione dei numeri in un calcolatore

Floating Point N = M BE. Notazione in virgola mobile. base. esempi = =

Sistemi di Numerazione

ESEMPIO 1: eseguire il complemento a 10 di 765

Rappresentazione numeri in virgola mobile

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

Fondamenti di Informatica

2. Codifica dell informazione

LA NOTAZIONE SCIENTIFICA

La somma. Esempio: Il prodotto. Esempio:

Rappresentazione delle informazioni

Codifica binaria dei numeri relativi

Dispense di Informatica per l ITG Valadier

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario

ESERCIZI di FONDAMENTI DI INFORMATICA RAPPRESENTAZIONE DEI NUMERI

Numeri interi posi-vi e nega-vi

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

Lezione 3. Sommario. Le operazioni aritmetiche binarie. L aritmetica binaria. La somma La sottrazione La moltiplicazione

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informazione analogica e digitale

I sistemi di numerazione

ESTRAZIONE DI RADICE

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.

Rappresentazione binaria

Sistemi di numerazione: generalità

Laboratorio di Informatica

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

24 : 3 = 8 con resto 0 26 : 4 = 6 con resto 2

I SISTEMI DI NUMERAZIONE

Informatica. Rappresentazione binaria Per esempio diventa /10/2007. Introduzione ai sistemi informatici 1

Il simbolo. è è = = = In simboli: Sia un numero naturale diverso da zero, il radicale. Il radicale. esiste. esiste 0 Il radicale

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Elementi di informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Esercizi. Esercizi sulla codifica (Parte 1) Elementi di Informatica e Programmazione. Soluzioni degli esercizi Esercizio 2

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

SCHEDA DI RECUPERO SUI NUMERI RELATIVI

Corso di Calcolo Numerico

Rappresentazione di informazioni con un alfabeto finito

Introduzione. Rappresentazione di numeri in macchina, condizion

Sommario. Addizione naturale

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Aritmetica dei Calcolatori 1

1 Sistema additivo e sistema posizionale

Operazioni binarie fondamentali

Materiale di approfondimento: numeri interi relativi in complemento a uno

Logica e codifica binaria dell informazione

I SISTEMI DI NUMERAZIONE

Elementi di Informatica e Programmazione

Aritmetica: operazioni ed espressioni

1. LE GRANDEZZE FISICHE

Sistema di numerazione binario, operazioni relative e trasformazione da base due a base dieci e viceversa di Luciano Porta

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti

Parte 1. Vettori di bit - AA. 2012/13 1.1

RAPPRESENTAZIONE DEI NUMERI BINARI. Corso di Fondamenti di Informatica AA

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

Le funzioni elementari. La struttura di R. Sottrazione e divisione

La codifica delle informazioni

la scienza della rappresentazione e della elaborazione dell informazione

Convertitori numerici in Excel

CONTINUITÀ E DERIVABILITÀ Esercizi risolti

la scienza della rappresentazione e della elaborazione dell informazione

4. Operazioni elementari per righe e colonne

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Fondamenti di Informatica 2. Le operazioni binarie

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione

SISTEMI DI NUMERAZIONE

Conversione tra le basi binarie

Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009. Prof. Raffaele Nicolussi

I SISTEMI DI NUMERAZIONE E LA NUMERAZIONE BINARIA

1. PRIME PROPRIETÀ 2

Il principio di induzione e i numeri naturali.

IL CODICE BINARIO. Il codice binario. Codifica posizionale. Aritmetica binaria

PROPRIETA' ASSOCIATIVA La somma di tre o più addendi non cambia se al posto di alcuni di essi si sostituisce la loro somma.

Metodi risolutivi per le disequazioni algebriche

Funzioni inverse Simmetrie rispetto alla bisettrice dei quadranti dispari. Consideriamo la trasformazione descritta dalle equazioni : = y

Definizioni iniziali

Rappresentazione dell informazione Codifica Binaria

Comparatori. Comparatori di uguaglianza

Dimensione di uno Spazio vettoriale

I diversi tipi di sistemi di numerazione

Транскрипт:

Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione da un numero da binario a decimale e viceversa Definizione delle rappresentazioni: senza segno con modulo e segno in complemento alla base in virgola mobile Operazioni elementari (somma, sottrazione, moltiplicazione e divisione) tra numeri nelle diverse rappresentazioni (naturalmente la coppia di numeri su cui si opera ha la stessa rappresentazione per i due operandi) definizione di overflow ed underflow. Conversione da binario a decimale Per rappresentare un numero (intero) in base binaria si possono utilizzare soltanto due cifre: e 1. In linea generale, un qualsiasi numero in base due ha un valore decimale che può essere calcolato secondo il seguente esempio. Considerando N = 1111.111 2 : 2 5 2 4 2 3 2 2 2 1 2 2 1 2 2 2 3 2 4 1 1 1 1 1 1 1 da cui si ha: N = 1 2 5 + 2 4 +1 2 3 + 2 2 +1 2 1 +1 2 +1 2 1 + 2 2 +1 2 3 +1 2 4 = 43.6875 1 1. Conversione da decimale a binario Per convertire un numero da decimale a binario, è necessario distinguere la parte intera dalla parte frazionaria. È infatti necessario convertirle separatamente, utilizzando due regole pratiche differenti, e poi unire insieme il risultato.

Regola pratica per la conversione della parte intera In generale, per convertire un numero decimale in un altra base, è sufficiente dividere ripetutamente il numero per la nuova base finché non si ottiene come risultato, e scrivere poi i resti ottenuti, a partire dalla posizione meno significativa. Ad esempio, per convertire il numero 57 1 in base due è sufficiente dividerlo ripetutamente per due: /2 57 28 R = 1 28 14 R = 14 7 R = 7 3 R = 1 3 1 R = 1 1 R = 1 da cui si ottiene che 57 1 = 1111 2 Regola pratica per la conversione della parte frazionaria di un numero decimale in binario, è sufficiente: moltiplicare la parte frazionaria per 2 scrivere il valore della parte intera ottenuta Per convertire la parte frazionaria ripetere il procedimento sulla nuova parte frazionaria ottenuta, finché non si ottiene una parte frazionaria nulla Prendere le parti intere dalla più significativa alla meno significativa Nota: nel caso dei numeri periodici, si potrebbe non ottenere mai una parte frazionaria nulla. Ad esempio, per convertire.6875 1 in binario: da cui si ottiene che.6875 1 =.111 2. 2.6875 1.375 U = 1.375.75 U =.75 1.5 U = 1.5 1. U = 1 Se si volesse convertire il numero 57.6875 1 sarebbe sufficente unire i due risultati (per la parte intera e per la parte frazionaria), ottenendo 1111.111 2. 1. Somma e sottrazione di due numeri interi Somma e sottrazione, nel sistema binario, seguono le stesse regole del sistema decimale. Pertanto, se vogliamo sommare 11 2 con 1 2 procediamo così: 2

11 + 1 = 1 6 2 8 Allo stesso modo, se vogliamo sottrarre 11 2 da 111 2, procediamo così: 111-11 = 111 14 3 11 11. Rappresentazione di numeri interi con segno Data una parola di lunghezza n, 1 bit viene utilizzato per rappresentare il segno, n 1 bit vengono utilizzati per rappresentare il numero in valore assoluto. Il valore assume il significato di segno +, il valore 1 assume il significato di segno -. Ad esempio, utilizzando 8 bit si ha: 1 1 1 = -12 1 1 = 12 Esisteranno quindi due codifiche per il valore : = + 1 = - 1. Rappresentazione di numeri interi in complemento a 2 Nel complemento a 2, data una parola di n bit, si possono rappresentare 2 n numeri. Essi verranno divisi in due metà, una positiva ed una negativa. Si potranno rappresentare, quindi, tutti quei numeri nell intervallo [ 2 n 1, +2 n 1 1], considerando lo nella metà dei numeri positivi. Pertanto, i numeri positivi sono rappresentati normalmente (rappresentazione binaria dei numeri positivi), con il bit più significativo pari a. I numeri negativi si ottengono come complemento a 2 del numero positivo corrispondente, ed hanno il bit più significativo pari a 1. Il complemento a 2 di un numero N in base 2 rappresentato utilizzando n cifre binarie è dato da: C 2 = 2 n N Ad esempio, considerando N = 111 e n = 8: C 2 = 1-11 = 11111 Regola pratica: per calcolare il complemento a due, si parte dal primo bit meno significativo (a destra) e si lasciano immutati tutti i bit fino al primo 1, dopo si invertono tutti gli altri. 3

Visivamente, utilizzando 4 bit: Alcuni esempi: 1111 111-1 -2 111-3 11-4 111-5 -6 11 11 I numeri negativi cominciano sempre con un 1 1 +1 1 +2 +3 11 - + -7-8 1 111 +4 1 +5 11 +6 +7 11 = 1 1 1 1 1 1 1 = 2 n 1 1 1 1 1 1 1 1 1 1 = -1 In questa rappresentazione, il bit più significativo identifica il gruppo di appartenenza (: numeri positivi; 1: numeri negativi), ma non va confuso con il segno della rappresentazione in modulo e segno. È una rappresentazione più vantaggiosa di quella in modulo e segno, perché consente di eseguire somme e sottrazioni come un unica operazione. Se vogliamo rappresentare il numero -67 in complemento a due con 8 bit, applicando la regola pratica, otteniamo: 1 1 1 = 67 1 1 1 1 1 1 = -67 11. Rappresentazione di un numero in virgola mobile Il formato standard per la rappresentazione dei numeri in virgola mobile è chiamato IEEE 754. Con parole di 32 bit, un numero in virgola mobile viene rappresentato come segue: segno esponente(8-bit) mantissa(23-bit) 31 23 4

Il numero è quindi composto di tre campi: 1. segno s, di 1 bit 2. esponente e, di 8 bit 3. mantissa m, di 23 bit Il segno ha valore 1 per indicare i numeri negativi, per i positivi. L esponente e può individuare 2 8 = 256 possibili valori. I valori e 255 sono riservati per rappresentare famiglie di numeri particolari. Pertanto, i 254 valori restanti vengono suddivisi nell intervallo [ 126, 127]. I numeri negativi non vengono rappresentati utilizzando il complemento a 2, ma viene utilizzato un bias di 127. Pertanto, data una rappresentazione e di un esponente, il valore ad esso associato può essere calcolato come E = e 127. La mantissa è di solito normalizzata tra.5 (.1 2 ) e.999999888 (.11111111111111111111111 2 ). Nella rappresentazione di base, la cifra prima della virgola (che è sempre 1) viene omessa dalla rappresentazione, perché considerata implicita. Pertanto, il valore decimale del numero rappresentato può essere calcolato (in generale) come: ( 1) s 2 E 1.m La rappresen- Esistono delle eccezioni, individuate dai due valori riservati dell esponente. tazione di un numero in formato IEEE 754 è riassunta in questa tabella: e m Valore del numero [1, 254] qualsiasi ( 1) s 2 126 1.m (numeri normali) ( 1) s 2 126.m (numeri subnormali o denormalizzati) ( 1) s (zero con segno) 255 ( 1) s (infinito, con segno) 255 NaN (not a number) Conversione da decimale a virgola mobile Prendiamo in considerazione il numero decimale N = 5, 828125 1. Procediamo attraverso i seguenti passi: a) Determinazione del segno Poiché il numero è negativo, poniamo s = 1. b) Conversione della parte intera Procediamo come nel caso di numero intero qualsiasi: da cui si ottiene che 5 1 = 11 2. /2 5 2 R = 1 2 1 R = 1 R = 1 5

c) Conversione della parte frazionaria Anche qui, la conversione segue sempre la stessa regola: da cui si ottiene che.828125 1 =.1111 2. d) Normalizzazione della mantissa 2.828125 1.65625 U = 1.65625.3125 U = 1.3125.625 U =.625 1.25 U = 1.25.5 U =.5 1 U = 1 Il numero che abbiamo calcolato fin ora è 11.1111 2. Lo standard IEEE 754 richiede che, per essere rappresentato, il numero sia nella forma 1.m, così da poter omettere l unità 1 che risulta essere sempre implicita 1. Pertanto vale l uguaglianza: 11.1111 = 1, 11111 } {{ } 2 2 m In cui, avendo spostato la virgola verso sinistra di due posizioni, dobbiamo moltiplicare il numero per 2 2. La mantissa m è a questo punto determinata. e) Rappresentazione dell esponente Il nostro numero è ora nella forma 1.m 2 E. Dobbiamo rappresentare il nostro esponente E = 2. Dobbiamo prima di tutto applicare il bias: e = E + 127 = 2 + 127 = 129 E possiamo ora procedere a convertire questo valore in binario, come sempre: /2 129 64 R = 1 64 32 R = 32 16 R = 16 8 R = 8 4 R = 4 2 R = 2 1 R = 1 R = 1 e pertanto il nostro esponente sarà e = 11. 1 La scelta di questa rappresentazione consente di aumentare di un bit l espressività della mantissa, proprio perché l 1 prima della virgola viene omesso. 6

f) Rappresentazione complessiva Abbiamo determinato i valori di s, e ed m. Il numero in formato IEE 754 è dato dalla concatenazione dei tre campi: 1 1 1 1 1 1 1 1 = -5,828125 31 23 g) Rappresentazione in esadecimale della virgola mobile Può essere utile adottare una notazione più compatta per rappresentare il numero. A questo scopo ci viene incontro la notazione in base 16, o esadecimale. Poiché 4 = 16, abbiamo che ogni quartetto di bit viene rappresentato da una singola cifra esadecimale. Pertanto, per effettuare la conversione è sufficiente raggruppare i bit in gruppi di quattro ed effettuare a conversione gruppo a gruppo: 11 111 11 1 C B A 8 Pertanto il nostro numero può essere scritto come CBA8 16 o, utilizzando due notazioni alternative, CBA8H 2 o xcba8. È importante notare che il valore xc, prima cifra del numero convertito, è composto da 4 bit che appartengono a due campi: il primo è il segno, i restanti sono i primi tre dell esponente. Questo metodo di rappresentazione compatta non va confuso con la rappresentazione esadecimale in virgola fissa, in cui è necessario aggiungere degli zeri davanti alla parte intera o dopo la parte decimale per poter procedere alla conversione, come nel seguente esempio: N = 11.1111 2 11.1111 2 5.B2 16 Conversione da virgola mobile a decimale Consideriamo il seguente numero rappresentato in formato IEEE 754: 1 1 1 1 31 23 Abbiamo che: s = 1 e = 2 7 + 2 = 129 E = 129 127 = 2 m = 1 + 2 2 = 1.25, in cui l 1 sommato a 2 2 viene sommato poiché, essendo la mantissa normalizzata, l 1 è implicito. Pertanto il numero rappresentato da questa parola di bit è dato da: N = ( 1) s 2 E 1.m = ( 1) 1 2 2 1.25 = 5 È dunque evidente che, nonostante il formato sia in virgola mobile, è anche possibile rappresentare numeri interi! 2 La H è l abbreviazione di hexadecimal, esadecimale in inglese. 7

11. Errore assoluto ed errore relativo Ogni volta che rappresentiamo un numero N in virgola mobile, in realtà rappresentiamo un numero N che potrebbe non essere uguale ad N per via di un errore di approssimazione. È allora interessante vedere di quanto la nostra rappresentazione sta sbagliando. Si può dunque introdurre l errore assoluto, calcolato come ε A = N N, ossia una grandezza algebrica che indica quanto la nostra approssimazione ha perso dell informazione originale. L errore relativo, invece, è una grandezza adimensionale che ci permette di capire se l errore che abbiamo commesso utilizzando la nostra approssimazione è piccolo oppure grande. Esso è dato da ε R = ε A N = N N N. Vediamo un esempio in base 1. Prendiamo il numero x = 3.5648722189 e decidiamo di rappresentarlo utlizzando soltanto 4 cifre decimali: x x = 3.5648 Andiamo a calcolare qual è l errore relativo che abbiamo introdotto con questa rappresentazione approssimata: ε R = x x x = 3.5648722189 3.5648 3.5648722189 che ci indica che l errore commesso è, di fatto, non molto grande. =, 2258 Vale anche l interessante relazione che ci dice che log 1 (ε R ) numero di cifre senza errore nella nostra rappresentazione. Infatti: log 1 (, 2258) = 4.69 8