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



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

4 3 4 = 4 x x x 10 0 aaa

Alessandro Pellegrini

SISTEMI DI NUMERAZIONE E CODICI

ESEMPIO 1: eseguire il complemento a 10 di 765

Informatica. Rappresentazione dei numeri Numerazione binaria

Codifica binaria dei numeri

= 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

Sistemi di Numerazione

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Elementi di informatica

Convertitori numerici in Excel

Codifica dei numeri negativi

Dispense di Informatica per l ITG Valadier

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

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico

Rappresentazione delle informazioni

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

Informatica Generale 02 - Rappresentazione numeri razionali

Sistemi di Numerazione Binaria NB.1

Aritmetica dei Calcolatori 1

Rappresentazione dei numeri in un calcolatore

Rappresentazione di informazioni con un alfabeto finito

La codifica delle informazioni

2.12 Esercizi risolti

I SISTEMI DI NUMERAZIONE

I sistemi di numerazione

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Informazione analogica e digitale

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

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

(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

La somma. Esempio: Il prodotto. Esempio:

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

Esercitazione Informatica I AA Nicola Paoletti

2. Codifica dell informazione

4. Operazioni aritmetiche con i numeri binari

I SISTEMI DI NUMERAZIONE

- Sistemi di numerazione 1 - Sistemi di Numerazione

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

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

Matematica generale CTF

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Operazioni binarie fondamentali

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

Codifica binaria dei numeri relativi

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

Laboratorio di Informatica

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

ESTRAZIONE DI RADICE

Codifica binaria e algebra di Boole

I SISTEMI DI NUMERAZIONE E LA NUMERAZIONE BINARIA

1 Sistema additivo e sistema posizionale

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

Teoria delle code. Sistemi stazionari: M/M/1 M/M/1/K M/M/S

BIT? Cosa c è dietro a questo nome? Che cos è il bit? Perché si usa? Come si converte un numero binario?

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013

Elementi di informatica

Elementi di Informatica e Programmazione

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

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Basi di matematica per il corso di micro

Fondamenti di Informatica 2. Le operazioni binarie

Memorie ROM (Read Only Memory)

Utilizzo delle formule in Excel

Materiale di approfondimento: numeri interi relativi in complemento a uno

Fondamenti di Informatica

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione

la scienza della rappresentazione e della elaborazione dell informazione

La misura degli angoli

Informatica per la comunicazione" - lezione 7 -

Aritmetica: operazioni ed espressioni

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

11) convenzioni sulla rappresentazione grafica delle soluzioni

Unità 1. I Numeri Relativi

RAPPRESENTAZIONE DEI NUMERI BINARI. Corso di Fondamenti di Informatica AA

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

SCHEDA DI RECUPERO SUI NUMERI RELATIVI

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori

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

Guardiamo ora però la cosa da un altro punto di vista analizzando il seguente grafico a forma di torta. La torta in 5 parti

risulta (x) = 1 se x < 0.

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a)

Rappresentazione binaria

La prof.ssa SANDRA VANNINI svolge da diversi anni. questo percorso didattico sulle ARITMETICHE FINITE.

Dimensione di uno Spazio vettoriale

Università degli Studi di Ferrara Corso di Laurea in Informatica A.A. 2007/2008

b. Che cosa succede alla frazione di reddito nazionale che viene risparmiata?

La distribuzione Normale. La distribuzione Normale

Uso di base delle funzioni in Microsoft Excel

SPC e distribuzione normale con Access

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

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

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

Capitolo 2. Operazione di limite

Rappresentazione dell informazione Codifica Binaria

Transcript:

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. A partire da questa lezione, ci occuperemo di come si riescono a codificare con sequenze binarie, quindi con sequenze di 0 e 1, le varie informazioni che possiamo gestire con i nostri sistemi informatici. Va da sé che l informazione, anche storicamente, che per prima è stata gestita dai sistemi di calcolo sono i numeri. Ecco, quindi, che ci occuperemo di codifica dell informazione e in particolare della rappresentazione dei numeri. Codifica dell'informazione Prima di parlare dei numeri dobbiamo parlare di codifica dell informazione perché dobbiamo introdurre un concetto fondamentale: come è possibile, dato un insieme di oggetti, rappresentarli all interno della nostra memoria con sequenze binarie? Per la verità le tecniche di codifica dell informazione sono largamente diffuse e sono estremamente varie: si va dal noto Codice Fiscale con una serie di lettere e cifre che identificano un soggetto fino al codice a barre che permette di identificare un determinato bene. Tutte queste codifiche permettono sostanzialmente di associare ad un elemento una sequenza di entità, di simboli, di barrette o di quant altro. Un codice binario associa ad ogni elemento una sequenza di bit. Questa sequenza di 0 e 1 deve essere tale per cui, dati un certo numero di elementi, ad essi sarà associata una opportuna ed univoca sequenza (di bit) in modo tale che, ogni volta che dentro ad un calcolatore vi è quella sequenza, essa viene associata a quel certo oggetto (e viceversa). Ovviamente, dobbiamo riuscire a capire quali sono le combinazioni migliori per rappresentare un certo numero di oggetti. La prima domanda da porci è: se abbiamo N bit, quanti oggetti possiamo rappresentare? La risposta arriva dalla formula secondo la quale: se io ho a dispostone una sequenza di N bit si hanno 2 elevato alla N combinazioni differenti, pertanto, possiamo a ciascuna delle 2 elevato alla N combinazioni associare un oggetto. In effetti, se ho 8 oggetti posso associare a ciascuno di essi una di queste sequenze orizzontali in modo tale che quello oggetto venga codificato, rappresentato simbolicamente all interno della mia memoria, da quei 3 bit.

Ma vale anche l altra domanda. Se io ho un certo numeri di oggetti, quanti sono i bit che mi servono per riuscire a rappresentarli? La risposta è nella formula secondo la quale, per codificare con sequenze in binario K oggetti, mi servono un numero di bit che è pari al logaritmo in base 2 di K. Essendo il logaritmo funzione opposta all elevamento a potenza, viene facile capire il perché di questa formula una volta capito il passaggio precedente. Dato il numero di oggetti, possiamo ricavare il numero corrispondente di bit. Ad esempio: se abbiamo 56 oggetti distinti e vogliamo sapere quanti bit servono per rappresentarli, dobbiamo fare il log in base 2 di 56 ch equivale a 5,807. Lo approssimiamo all intero superiore e quindi otteniamo il valore 6. La controprova viene dal fatto che 2 elevato alla sesta equivale a 64 mentre invece 2 elevato alla quinta equivale solo a 32. Con 2 alla sesta abbiamo 64 sequenze diverse e noi ne dovremmo scegliere 56 alle quali associare i diversi oggetti Codifica dei numeri Veniamo a questo punto ad occuparci dei numeri veri e propri e vediamo come si riesce con il sistema binario a rappresentarli. Premettiamo che per rappresentare i numeri abbiamo bisogno di un sistema di numerazione, vale a dire un sistema di SIMBOLI (cifre) che nel nostro caso vanno da 0 a 9. Ma non bastano le cifre, ci vogliono anche delle regole che indicano come un numero si rappresenta partendo dalla sequenze di cifre stesse e, infine, in un sistema di numerazione dobbiamo definire le regole per effettuare le operazioni, perlomeno quelle elementari. La storia è piena di sistemi di numerazione. Quello decimale che adoperiamo è largamente il più diffuso ma i nostri antenati romani adottavano, ad esempio, un sistema diverso. Una delle differenze fondamentali era che il sistema dei romani non era posizionale: da IX (9) a XI (11) nel primo caso il simbolo I viene sottratto mentre nel secondo caso I viene sommato. In altri termini, la posizione della cifra non definisce in modo univoco il valore della stessa. Questo dava alcuni problemi e, col passare del tempo, il sistema posizionale si è affermato praticamente a livello planetario. Il suo concetto di fondo è che ogni posizione all interno della sequenza delle cifre ha un ben specifico ed univoco peso. Non solo i pesi sono fissi in base alla posizione, ma il valore del peso associato alla posizione è stabilito in modo univoco sulla base del valore della base del sistema di posizione (Nel sistema decimale quindi si avrà 10 elevato alla 0, 10 elevato alla 1, etc etc ) Un sistema posizionale in base r è caratterizzato dalla base che chiamiamo r e il valore della base determina anche il nr delle cifre e vanno dallo 0 a r-1. In concreto: in un sistema a base 10, abbiamo cifre che vanno da 0 a 9, cioè da 0 a 10-1.

A questo aggiungiamo che ad una posizione j viene attribuito il peso r elevato j. Da qui possiamo capire come viene rappresentata una entità numerica in un sistema posizionale: un numero intero non negativo può esser rappresentato con N simboli (dove questi simboli sono le cifre) inseriti in una sequenza che stabilisce il peso di ciascuna di queste cifre in base alla formula r elevato alla j. Visto che nel mondo si è affermato il sistema decimale. Perché, però, nel calcolatore si è affermato il sistema binario? Nel calcolatore si possono rappresentare solo due cifre 0 e 1 (vedi Lez.1) e se, come abbiamo visto, essendo il numero delle cifre che determina la base, allora non si può operare diversamente dalla base binaria. Se operiamo in base binaria dobbiamo porci alcune domande. Come è possibile passare da un sistema a base due ad un sistema decimale? Dobbiamo ricordarci che il sistema in base 2 è comunque posizionale per cui valgono le stesse regole del sistema decimale. Per cui la seguente formula spiega bene che, da destra a sinistra, si deve moltiplicare ciascun numero per la base elevata alla potenza di volta in volta crescente. Nell esempio si vede il passaggio da 1011 in base 2 al numero 11 in base dieci. Per fare il passaggio inverso, cioè da base 10 a base 2, c è un metodo chiamato delle divisioni successive che ci permette di ottenere la sequenza di cifre binarie corrispondenti ad un numero espresso nelle notazione decimale. Questo metodo delle divisioni successive ha delle sue dimostrazioni ma lo rappresentiamo più semplicemente con un esempio convertendo 25 in base 10 al suo corrispondente in base 2. Dobbiamo predente 25 diviso 2. Otteniamo 12 e resto 1. Prendiamo poi 12 e lo diviamo per 2. Otteniamo 6 con resto 0. E così via fino a quando otteniamo un quoziente uguale a 0. Abbiamo ottenuto una sequenza di valori di resto che saranno o 0 o 1 : prendiamo questa sequenza nell ordine inverso rispetto a come è stata generata ricordandoci che il primo bit risulta essere quello meno significativo. Riportando i valori, possiamo dire che 11001 in base 2 risulta equivalente a 25 in base dieci.

Se abbiamo capito come riusciamo a rappresentare i nostri numeri dobbiamo trovare adesso le regole per far dei conti, cioè per svolgere le operazioni aritmetiche fondamentali. In questa tabella si vede molto semplicemente l andamento dell addizione. La moltiplicazione è nel caso qui sotto tra il nr 5 e il nr 2 e si evolve nei modi conosciuti.

Noi non abbiamo, però, solo a che fare con i numeri naturali, dobbiamo rappresentare anche numeri relativi, cioè quelli che hanno un segno davanti (+ o -). Purtroppo i nostri calcolatori hanno solo due simboli e quindi non possiamo trovarne altri diversi dalle due cifre 0 e 1 per rappresentare il segno. Si deve trovare un metodo alternativo: si rappresenta un numero intero associando al primo bit a sinistra il segno. Per convenzione, se il primo bit è 1 allora il numero è negativo mentre se il primo bit è 0 il numero è positivo. Prima di procedere ed andare a vedere quali metodologie ci permettono di rappresentare in modo agevole anche il resto dei nostri bit, dobbiamo fare due conti su quanti numeri possiamo rappresentare. Già avevamo avuto modo di dire che normalmente un numero intero dentro ad un calcolatore è rappresentato da un numero fisso di bit. Se questo numero fisso è pari a 2 byte cioè 16 bit, allora vorrà dire che l intervallo di rappresentazione, l insieme dei numeri che possiamo rappresentare è variabile da circa + e 32000. Analogamente, se volessimo avere un intervallo di rappresentazione più ampio dovremmo aumentare i bit e passare da 2 byte a 4 byte. L intervallo a quel punto sarebbe compreso tra + e 2 miliardi. Capito che i nostri numeri relativi si rappresentano su 2 o 4 byte e capito che il primo bit rappresenta il segno 0 (positivo) 1 (negativo), passiamo alle specifiche notazioni con la quali rappresentare gli altri bit. Ne esistono due tradizionalmente note. Notazione in modulo e segno e notazione in complemento a due. La seconda è quella largamente più diffusa perché permette di semplificare la realizzazione dei circuiti per eseguire le operazioni aritmetiche e, ovviamente, quanto più piccolo e semplice è il mio circuito e tanto più veloce posso fare i conti.

La tecnica del complemento a due è ormai diffusa in tutti i sistemi dei nostri PC ma anche neigrandi calcolatori, negli hi-fi, gli I-pod e così via. È la tecnica standard per rappresentare i numeri interi relativi. Ma se abbiamo a che fare con dei numeri non interi cosa possiamo o dobbiamo fare? Nel mondo scientifico abbiamo dei numeri con la virgola e quindi con cifre decimali. Come si possono trattare? Il metodo più diffuso è quello che si chiama rappresentazione dei numeri in virgola mobile. Torniamo un momento, però, alla rappresentazione dei numeri con virgola come avviene nel nostro mondo. Noi distinguiamo la parte decimale dalla parte intera attraverso un simbolo che è la virgola. Al di là del fatto che non sarebbe semplice inserire una virgola, la cosa potrebbe essere fatta anche con i nostri elaboratori. Questa è una posizione legittima e calcolabile perché il peso delle cifre dopo la virgola sara 2 elevato a -1, -2, e così via. E, quindi, il risultato complessivo nell esempio qui sotto sarà dato dalla parte intera 5 e la parte dopo la virgola risulta essere 2 elevato a -1 per 0 più 2 elevato a -2 per 1, cioè 0,25, e quinti si ha 5,25 Va tuttavia detto che questa rappresentazione crea una seria di problemi perché non è così banale all interno dell elaboratore gestire la posizione della virgola in un byte o anche in 2 byte o 4 byte. Si preferisce allora una diversa notazione che viene detta rappresentazione in vigola mobile (floating point).

Si chiama così perché la posizione della virgola non viene stabilita a priori bensì il numero viene rappresentato componendolo in una serie di elementi: segno, mantissa ed esponente, avvalendosi della cosiddetta notazione scientifica come mostrano gli esempi qui sotto. Quindi, sostanzialmente, il numero in questa notazione può sempre essere individuato da una mantissa moltiplicata per la base e per l esponente che è un numero intero negativo o positivo. Ne deriva che noi si possa pensare di memorizzare all interno del nostro elaboratore il segno, la mantissa e l esponente con il vantaggio che tutti questi numeri non hanno bisogno di indicare esplicitamente la posizione della virgola. Avremo il primo bit che rappresenta, come abbiamo già indicato, il segno; avremo poi una mantissa che sarà espressa su un certo numero di bit e, infine, ci sarà l esponente senza bisogno che venga rappresentata la base perché risulta implicita nel sistema di numerazione. Con questo meccanismo si riescono a rappresentare degli intervalli di rappresentazione molto più grandi che su 32 bit vanno da e + 10 elevato a 38 che corrispondono allla quasi totalità dei numeri di cui si può avere bisogno. Il calcolatore, però, non è perfetto. Il numero è pur sempre limitato e se, infatti, abbiamo solo 16 bit possiamo rappresentare, come si è visto, solo + o 32.769 numeri. Altro problema è la tracimazione (overflow) che si ha quando facendo un certo calcolo si ottiene un risultato che supera il numero di cifre disponibili. In questo caso non si può fare nulla. Si può solo avere un circuito che riveli l anomali e il software si prenderà carico del problema.

Ma gli inconvenienti non sono solo questi. Ci sono i numeri strani che non sempre possono essere rappresentati con precisione nei sistemi usuali (ad esempio 1/3 cioè 0,3333 periodico oppure il pi greco).