Codifica dei numeri negativi



Documenti analoghi
Informatica Generale 02 - Rappresentazione numeri razionali

ESERCIZI di FONDAMENTI DI INFORMATICA RAPPRESENTAZIONE DEI NUMERI

Alessandro Pellegrini

Informatica. Rappresentazione dei numeri Numerazione binaria

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

2.12 Esercizi risolti

Sistemi di Numerazione Binaria NB.1

Rappresentazione delle informazioni

Elementi di informatica

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

4 3 4 = 4 x x x 10 0 aaa

Sistemi di Numerazione

(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

Codifica binaria dei numeri

Codifica binaria dei numeri relativi

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

Esercitazione Informatica I AA Nicola Paoletti

Rappresentazione binaria

Fondamenti di Informatica

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

4. Operazioni aritmetiche con i numeri binari

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

SISTEMI DI NUMERAZIONE E CODICI

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

Elementi di informatica

Rappresentazione dell informazione Codifica Binaria

Rappresentazione numeri in virgola mobile

2. Codifica dell informazione

ESEMPIO 1: eseguire il complemento a 10 di 765

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Aritmetica dei Calcolatori 1

La codifica delle informazioni

Rappresentazione dei numeri in un calcolatore

I sistemi di numerazione

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico

Materiale di approfondimento: numeri interi relativi in complemento a uno

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

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione

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

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

Laboratorio di Informatica

Corso di Calcolo Numerico

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

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

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

LA NOTAZIONE SCIENTIFICA

Rappresentazione binaria dei numeri negativi

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

Numeri interi posi-vi e nega-vi

= 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

Logica e codifica binaria dell informazione

Comparatori. Comparatori di uguaglianza

Rappresentazione di informazioni con un alfabeto finito

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

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

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

Elementi di Informatica e Programmazione

Memorie ROM (Read Only Memory)

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

Sommario. Addizione naturale

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Introduzione. Università degli studi di Cassino. Ing. Saverio De Vito Tel.:

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

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

Sistemi di numerazione: generalità

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

Operazioni binarie fondamentali

La somma. Esempio: Il prodotto. Esempio:

ALGEBRA BOOLEANA FONDAMENTI DI INFORMATICA 1. Algebra di Boole. Definizione NOT, AND, OR

Informazione analogica e digitale

Codifica binaria e algebra di Boole

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

Indice. 1 Rappresentazione dei dati... 3

Calcolatori: Algebra Booleana e Reti Logiche

la scienza della rappresentazione e della elaborazione dell informazione

I SISTEMI DI NUMERAZIONE

1 Organizzazione dell unità in virgola mobile (FPU)

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Dispense di Informatica per l ITG Valadier

UNIVERSITÀ DEGLI STUDI DI TERAMO

Introduzione. Rappresentazione di numeri in macchina, condizion

SCHEDA DI RECUPERO SUI NUMERI RELATIVI

CODIFICA BINARIA. ... sono rappresentati ricorrendo a simboli che sintezzano il concetto di numerosità.

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

LA NUMERAZIONE BINARIA

RAPPRESENTAZIONE DEI NUMERI BINARI. Corso di Fondamenti di Informatica AA

Rappresentazione e Memorizzazione dei Dati

B. Vogliamo determinare l equazione della retta

ESTRAZIONE DI RADICE

a) Il campo di esistenza di f(x) è dato da 2x 0, ovvero x 0. Il grafico di f(x) è quello di una iperbole -1 1

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

LA RAPPRESENTAZIONE DELLE INFORMAZIONI

APPUNTI DI ELETTRONICA DIGITALE

SISTEMI DI NUMERAZIONE

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

- Sistemi di numerazione 1 - Sistemi di Numerazione

Transcript:

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione in complemento a 2. Ad esempio, supponiamo di avere a disposizione n bit. Se vogliamo rappresentare numeri n interi senza segno, sappiamo che possiamo rappresentare numeri nell intervallo [0,2-1]. Se invece vogliamo rappresentare anche numeri negativi, allora le configurazioni che hanno il bit n-1 più significativo uguale a zero, cioè [0,2-1], rappresentano se stesse, mentre le configurazioni n-1 n col bit più significativo uguale a uno, cioè [2,2-1], rappresentano i numeri negativi che si n n-1 ottengono traslando a sinistra l intervallo di 2, cioè l intervallo [-2,-1]. Per questo, nella rappresentazione in complemento a 2, il bit più significativo viene chiamato bit di segno. 8 Con 8 bit, ad esempio, possiamo rappresentare i numeri naturali nell intervallo [0,2-1], cioè 7 7 [0,255], oppure i numeri relativi nell intervallo [-2,2-1], cioè [-128,127]. Con 16 bit (2 byte) 16 possiamo rappresentare i numeri naturali nell intervallo [0,2-1], cioè [0,65535], oppure i 15 15 numeri relativi nell intervallo [-2,2-1], cioè [-32768,32767].

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-2 Per ottenere la rappresentazione in complemento a 2 di un numero negativo: si parte dalla rappresentazione binaria del valore assoluto (che avrà il bit di segno = 0) e si prende il complemento a 1 di ciascun bit, quindi si aggiunge 1 al risultato. Es. (si supponga una parola di 8 bit): 27 = 00011011 10 2 complemento a 1 : 11100100 + 1 ------------- -2710 = 111001012 Viceversa, se abbiamo una sequenza di 8 bit e sappiamo che essa rappresenta un numero intero con segno, con i numeri negativi rappresentati in complemento a 2, allora, per ottenere il numero rappresentato, cominciamo con l esaminare il bit di segno. Se esso è zero, il numero rappresentato è non negativo e lo otteniamo con la normale conversione binario-decimale. Se invece il bit di segno è uno, allora sappiamo che si tratta di un numero negativo. Per ottenere il modulo del numero applichiamo l algoritmo di sopra, cioè complementiamo tutti i bit e sommiamo 1 al risultato.

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-3 Per esempio, se il numero binario 11100101 è la rappresentazione in complemento a 2 di un numero, il valore assoluto del numero rappresentato si ottiene così: complemento a 1 : 00011010 + 1 ------------- 2710 = 000110112 Per una parola di n bit, i numeri N rappresentabili in complemento a 2 sono tali per cui n-1 n-1-2 <= N <= 2-1 Per parole di 16 bit si ha: cioè 15 15-2 <= N <= 2-1 -32768 <= N <= 32767

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-4 Configurazioni Numero Traslazione Numero binarie rappresentato rappresentato (4 bit) (senza segno) (con segno) 0000 0 0 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 5 5 0110 6 6 0111 7 7 1000 8-16 -8 1001 9-16 -7 1010 10-16 -6 1011 11-16 -5 1100 12-16 -4 1101 13-16 -3 1110 14-16 -2 1111 15-16 -1

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-5 Operazioni di somma e sottrazione nella rappresentazione in complemento a 2 Supponiamo di lavorare con 4 bit: i numeri rappresentabili sono gli interi nell intervallo [-8,7]. Somma di due numeri positivi: Es. 1 Es. 2 210 : 00102 + 410 : 01002 = ---------- 610 : 01102 510 : 01012 + 410 : 01002 = ---------- -710 : 10012 (overflow)

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-6 Somma di due numeri negativi: Es. 1 Es. 2-210 : 11102 + -410 : 11002 = ---------- -610 : [1]10102-510 : 10112 + -410 : 11002 = ---------- 710 : [1]01112 (overflow)

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-7 Somma di due numeri di segno opposto: Es. 1 Es. 2 +2 10 : 00102 + -410 : 11002 = ---------- -210 : 11102-510 : 10112 + +7 10 : 01112 = ---------- +2 10 : [1]00102

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-8 Il numero decimale 341.801 equivale a Rappresentazione dei numeri reali 2 1 0-1 -2-3 3 10 +4 10 +1 10 +8 10 +0 10 +1 10 Analogamente il numero binario 101.011 equivale a 2 1 0-1 -2-3 1 2 +0 2 +1 2 +0 2 +1 2 +1 2

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-9 Conversione in binario di un numero reale Si convertono separatamente la parte intera e la parte frazionaria. Per la parte intera si può applicare l algoritmo di conversione visto in precedenza. Per la parte frazionaria si moltiplica per 2 e si toglie la parte intera del risultato, che diventa la prima cifra dopo il punto. Si procede allo stesso modo per le successive cifre, finchè la parte frazionaria non si annulla o finchè non abbiamo ottenuto un numero sufficiente di cifre binarie. Esempio: convertire in binario il numero 5.375 10 La parte intera è 101 2 Rimane da convertire la parte frazionaria 0.375 0.375 2 = 0.750 la parte intera (0) diventa la prima cifra binaria dopo il punto 0.750 2 = 1.5 la parte intera (1) diventa la seconda cifra binaria dopo il punto 0.5 2 = 1.0 la parte intera (1) diventa la terza cifra binaria dopo il punto Risultato: 5.375 = 101.011 = 4 + 1 + 1/4 + 1/8 10 2

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-10 Rappresentazione normalizzata Il numero (base 10) 341.801 può essere rappresentato in forma normalizzata come 3.41801x10 2 dove 3.41801 è la mantissa e 2 è l'esponente. Analogamente il numero binario 101.011 può essere rappresentato come 1.01011 2 2 Tenendo presente che la mantissa di un numero binario normalizzato (diverso da 0) comincia sempre con la cifra 1 seguita dal punto, per rappresentare il numero in memoria è sufficiente inserire le cifre che nella mantissa seguono il punto, più l'esponente e il segno.

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-11 Standard IEEE per la rappresentazione di numeri reali in singola precisione Questo standard è utilizzato ad esempio per rappresentare il tipo float del C++, che occupa 4 byte (32 bit): 1 bit per il segno, 8 bit per l'esponente e 23 bit per la mantissa. S (1 bit) E (8 bit) M (23 bit) Il bit di segno (S) è 0 per i numeri positivi e 1 per i numeri negativi. Gli 8 bit successivi (E) rappresentano l esponente in codice in eccesso-127, cioè si ottengono sommando all'esponente effettivo il bias $7F = 011111112 = 12710. L'esponente effettivo può dunque andare da -127 a +128. I rimanenti 23 bit rappresentano i bit che seguono 1. nella mantissa. Il numero 0.0 è rappresentato da 4 byte nulli. Il numero -0.0 ha il bit di segno uguale a 1 e i rimanenti 31 bit uguali a 0. In memoria i 4 byte vengono messi nell ordine basso-alto, cioè il byte all indirizzo più basso contiene gli ultimi 8 bit della mantissa, mentre il byte all indirizzo più alto contiene il bit di segno seguito dai primi 7 bit dell esponente.

E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-12 Tipo float del Turbo C++ Esempi di rappresentazione interna Byte offset: 3 2 1 0 1.0 3F 80 00 00-1.0 BF 80 00 00 2.0 40 00 00 00-2.0 C0 00 00 00 3.0 40 40 00 00-3.0 C0 40 00 00 4.0 40 80 00 00-4.0 C0 80 00 00 0.5 3F 00 00 00-0.5 BF 00 00 00 0.75 3F 40 00 00-0.75 BF 40 00 00 100.25 42 C8 80 00-100.25 C2 C8 80 00 25.125 41 C9 00 00-25.125 C1 C9 00 00 0.0 00 00 00 00-0.0 80 00 00 00