2.12 Esercizi risolti



Documenti analoghi
Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

(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

Informatica Generale 02 - Rappresentazione numeri razionali

Sistemi di Numerazione

Fondamenti di Informatica

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

Alessandro Pellegrini

Informatica. Rappresentazione dei numeri Numerazione binaria

Sistemi di Numerazione Binaria NB.1

Sommario. Addizione naturale

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

2. Codifica dell informazione

Codifica dei numeri negativi

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

Rappresentazione dei numeri in un calcolatore

Codifica binaria dei numeri

Elementi di informatica

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

Rappresentazione delle informazioni

Rappresentazione binaria

Esercitazione Informatica I AA Nicola Paoletti

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

I sistemi di numerazione

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

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

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione

Materiale di approfondimento: numeri interi relativi in complemento a uno

SISTEMI DI NUMERAZIONE E CODICI

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

Rappresentazione numeri in virgola mobile

Aritmetica dei Calcolatori 1

Elementi di informatica

ESERCIZI di FONDAMENTI DI INFORMATICA RAPPRESENTAZIONE DEI NUMERI

La somma. Esempio: Il prodotto. Esempio:

ESEMPIO 1: eseguire il complemento a 10 di 765

4. Operazioni aritmetiche con i numeri binari

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

Rappresentazione di informazioni con un alfabeto finito

Codifica binaria dei numeri relativi

4 3 4 = 4 x x x 10 0 aaa

Definizioni iniziali

Operazioni binarie fondamentali

Sistemi di numerazione: generalità

Corso di Calcolo Numerico

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Codifica binaria e algebra di Boole

RAPPRESENTAZIONE DEI NUMERI BINARI. Corso di Fondamenti di Informatica AA

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

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

SISTEMI DI NUMERAZIONE

Laboratorio di Informatica

L'informazione e la sua codifica

Fondamenti di Informatica 2

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

La codifica delle informazioni

Fondamenti di Informatica 2. Le operazioni binarie

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

I SISTEMI DI NUMERAZIONE (esercizi svolti)

Elementi di Informatica e Programmazione

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

Codifica dei numeri. Rappresentazione dell informazione

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Introduzione. Rappresentazione di numeri in macchina, condizion

FONDAMENTI DI INFORMATICA

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

Rappresentazione dell informazione Codifica Binaria

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

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

Indice. 1 Rappresentazione dei dati... 3

LA NOTAZIONE SCIENTIFICA

1 Sistema additivo e sistema posizionale

Fondamenti di Informatica 2. Esercizi sulle codifiche numeriche e di testo con soluzioni

Informazione analogica e digitale

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

Codifica binaria dell Informazione Aritmetica del Calcolatore

la scienza della rappresentazione e della elaborazione dell informazione

Corso basilare di programmazione

Conversione tra le basi binarie

Appunti sulla rappresentazione dell informazione

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

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

I SISTEMI DI NUMERAZIONE E LA NUMERAZIONE BINARIA

Rappresentazione binaria dei numeri negativi

ESERCIZI SUGLI AUTOMI A STATI FINITI

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

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

90.1 Sistemi di numerazione Sistema decimale. 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria

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

I SISTEMI DI NUMERAZIONE

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

I diversi tipi di sistemi di numerazione

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

la scienza della rappresentazione e della elaborazione dell informazione

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

Aritmetica: operazioni ed espressioni

Corso basilare di programmazione «

Transcript:

Codifica dell'informazione 55 Lo standard IEEE prevede cinque cause di eccezione aritmetica: underflow, overflow, divisione per zero, eccezione per inesattezza, e eccezione di invalidità. Le eccezioni di underflow, overflow, e divisione per zero, sono presenti anche in altri standard, mentre l eccezione per inesattezza è caratteristica dello standard IEEE e si verifica sia quando il risultato di un operazione deve essere arrotondato, sia quando l operazione incorre in un overflow. 2.12 Esercizi risolti 1) Convertire i numeri decimali 335 e 564 in base 2, in base 8 e in base 16 mostrando il risultato e tutti i passaggi svolti. Si consideri 335. Per la conversione in base 2 si ha: 335/2 = N 0 = 167 R 0 = 1 N 0 /2 = N 1 = 83 R 1 = 1 N 1 /2 = N 2 = 41 R 2 = 1 N 2 /2 = N 3 = 20 R 3 = 1 N 3 /2 = N 4 = 10 R 4 = 0 N 4 /2 = N 5 = 5 R 5 = 0 N 5 /2 = N 6 = 2 R 6 = 1 N 6 /2 = N 7 = 1 R 7 = 0 N 7 /2 = N 8 = 0 R 8 = 1 Pertanto risulta: (335) 10 = (101001111) 2. Per la conversione in base 8 si ha: 335/8 = N 0 = 41 R 0 = 7 N 0 /8 = N 1 = 5 R 1 = 1 N 1 /8 = N 2 = 0 R 2 = 5 Il risultato è: (335) 10 = (517) 8. Per la conversione in base 16: 335/16 = N 0 = 20 R 0 = 15 N 0 /16 = N 1 = 1 R 1 = 4 N 1 /16 = N 2 = 0 R 2 = 1 Il risultato è: (335) 10 = (14F) 16 Si consideri ora 564. Per la conversione in base 2 si ha:

56 Capitolo 2 564/2 = N 0 = 282 R 0 = 0 N 0 /2 = N 1 = 141 R 1 = 0 N 1 /2 = N 2 = 70 R 2 = 1 N 2 /2 = N 3 = 35 R 3 = 0 N 3 /2 = N 4 = 17 R 4 = 1 N 4 /2 = N 5 = 8 R 5 = 1 N 5 /2 = N 6 = 4 R 6 = 0 N 6 /2 = N 7 = 2 R 7 = 0 N 7 /2 = N 8 = 1 R 8 = 0 N 8 /2 = N 9 = 0 R 9 =1 Pertanto risulta: (564) 10 = (1000110100) 2. Conversione in base 8: 564/8 = N 0 = 70 R 0 = 4 N 0 /8 = N 1 = 8 R 1 = 6 N 1 /8 = N 2 = 1 R 2 = 0 N 2 /8 = N 3 = 0 R 3 = 1 Il risultato è: (564) 10 = (1064) 8. Conversione in base 16: Il risultato è: (564) 10 = (234) 16 564/16 = N 0 = 35 R 0 = 4 N 0 /16 = N 1 = 2 R 1 = 3 N 1 /16 = N 2 = 0 R 2 = 2 2) Sia dato il numero decimale frazionario 465,375. Convertirlo in base 2 usando la notazione in virgola fissa, mostrando il risultato e tutti i passaggi svolti. Si effettui la conversione in base 2 della parte intera:

Codifica dell'informazione 57 465/2 = N 0 = 232 R 0 = 1 N 0 /2 = N 1 = 116 R 1 = 0 N 1 /2 = N 2 = 58 R 2 = 0 N 2 /2 = N 3 = 29 R 3 = 0 N 3 /2 = N 4 = 14 R 4 = 1 N 4 /2 = N 5 = 7 R 5 = 0 N 5 /2 = N 6 = 3 R 6 = 1 N 6 /2 = N 7 = 1 R 7 = 1 N 7 /2 = N 8 = 0 R 8 =1 Per la parte intera risulta: (465) 10 = (111010001) 2 Si effettui la conversione in base 2 della parte frazionaria: Prodotti Parti intere 0,375*2 = 0,75 b -1 = 0 0,75*2 = 1,5 b -2 = 1 0,5*2 = 1 b -3 = 1 Per la parte frazionaria risulta: (0,375) 10 = (0,011) 2 Il risultato finale è: (465,375) 10 = (111010001,011) 2 3) Sia dato il numero binario frazionario N 2 = 101110000,101. Convertirlo in base 8, in base 16 e in base 10 mostrando i risultati e tutti i passaggi svolti. La conversione in base 8 si ottiene, per la parte intera, partendo dal bit più a destra e suddividendo il numero binario in gruppi di tre bit (aggiungendo a sinistra, se necessario, degli zeri) e, per la parte frazionaria, partendo dal bit più a sinistra e suddividendo il numero binario in gruppi di tre bit (aggiungendo a destra, se necessario, degli zeri): N 2 = 101 110 000,101.Quindi per ogni gruppo di tre bit si sostituisce la corrispondente cifra ottale: N 8 = 560,5 Analogamente per la conversione in base 16 si opera su gruppi di quattro bit: N 2 =1 0111 0000, 1010 ottenendo: N 16 = 170,A La conversione in base 10 si può ricavare a partire dalla rappresentazione binaria: N 10 = 1 * 2 8 + 0 * 2 7 + 1 * 2 6 + 1 * 2 5 + 1 * 2 4 + 0 * 2 3 + 0 * 2 2 + 0 * 2 1 + 0 * 2 0 + 1 * 2-1 + 0 * 2-2 + 1 * 2-3 = 368,625 Oppure si può ricavare dalle rappresentazioni ottali o esadecimali: N 10 = 5 * 8 2 + 6 * 8 1 + 0 * 8 0 + 5 * 8-1 = 368,625 N 10 = 1 * 16 2 + 7 * 16 1 + 0 * 16 0 + 10 * 16-1 = 368,625 4) Siano date le seguenti coppie (a, b) di numeri interi con segno espressi nella rappresentazione decimale: (78, 26); ( 20, 14); ( 12, 24); (78, 82). Calcolare il risultato delle operazioni (a + b) e (a b) in aritmetica binaria tra numeri interi

58 Capitolo 2 con segno rappresentati in complemento a due su 8 bit. Indicare la presenza di un eventuale overflow. a = (78) 10 b = (26) 10 R 0 0 0 1 1 1 1 0 a 0 1 0 0 1 1 1 0 + (78) 10 + b 0 0 0 1 1 0 1 0 (26) 10 a+b 0 1 1 0 1 0 0 0 (104) 10 R 1 1 0 0 1 1 1 0 a 0 1 0 0 1 1 1 0 + (78) 10 + b 1 1 1 0 0 1 1 0 ( 26) 10 a b 0 0 1 1 0 1 0 0 (52) 10 a = (-20) 10 b = (14) 10 R 0 0 0 0 1 1 0 0 a 1 1 1 0 1 1 0 0 + ( 20) 10 + b 0 0 0 0 1 1 1 0 (14) 10 a+b 1 1 1 1 1 0 1 0 ( 6) 10 a 1 1 1 0 1 1 0 0 + ( 20) 10 + b 1 1 1 1 0 0 1 0 ( 14) 10 a b 1 1 0 1 1 1 1 0 ( 34) 10 a = ( 12) 10 b = ( 24) 10 a 1 1 1 1 0 1 0 0 + ( 12) 10 + b 1 1 1 0 1 0 0 0 ( 24) 10 a+b 1 1 0 1 1 1 0 0 ( 36) 10 R 1 1 1 1 0 0 0 0 a 1 1 1 1 0 1 0 0 + ( 12) 10 + b 0 0 0 1 1 0 0 0 (24) 10 a b 0 0 0 0 1 1 0 0 (12) 10 a = (78) 10 b = ( 82) 10 R 0 0 0 0 1 1 1 0 a 0 1 0 0 1 1 1 0 + (78) 10 + b 1 0 1 0 1 1 1 0 ( 82) 10 a+b 1 1 1 1 1 1 0 0 ( 4) 10

Codifica dell'informazione 59 R 0 1 0 1 1 1 1 0 a 0 1 0 0 1 1 1 0 + (78) 10 + b 0 1 0 1 0 0 1 0 (82) 10 a b 1 0 1 0 0 0 0 0 overflow 5) Si considerino i numeri interi con segno rappresentati in complemento a due su 8 bit. Si scriva la codifica binaria del numero positivo più grande rappresentabile e del numero negativo più piccolo rappresentabile. Si calcoli il risultato della somma binaria dei due numeri trovati (indicando il risultato anche in decimale). Il numero positivo più grande rappresentabile è: (01111111) 2 = (127) 10 cioè (2 7 1). Il numero negativo più piccolo rappresentabile è: (10000000) 2 = ( 128) 10 cioè ( 2 7 ) Si calcoli ora la somma (01111111 + 10000000): R 0 0 0 0 0 0 0 0 a 0 1 1 1 1 1 1 1 + (127) 10 + b 1 0 0 0 0 0 0 0 ( 128) 10 a+b 1 1 1 1 1 1 1 1 ( 1) 10 6) Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento a due su 8 bit (indicando la presenza di un eventuale overflow): (00001101 + 00111101); (00001100 + 10110110); (00010100 01101111); (11110100 + 11101000); (00000001 + 11111110). Scrivere l equivalente rappresentazione dei numeri e del risultato anche in decimale. (00001101 + 00111101): R 0 0 1 1 1 1 0 1 a 0 0 0 0 1 1 0 1 + (13) 10 + b 0 0 1 1 1 1 0 1 (61) 10 a+b 0 1 0 0 1 0 1 0 (74) 10

60 Capitolo 2 (00001100 + 10110110): R 0 0 1 1 1 1 0 0 a 0 0 0 0 1 1 0 0 + (12) 10 + b 1 0 1 1 0 1 1 0 ( 74) 10 a+b 1 1 0 0 0 0 1 0 ( 62) 10 (00010100 01101111): R 0 0 0 1 0 0 0 0 a 0 0 0 1 0 1 0 0 + (20) 10 + b 1 0 0 1 0 0 0 1 ( 111) 10 a+b 1 0 1 0 0 1 0 1 ( 91) 10 (11110100 + 11101000): a 1 1 1 1 0 1 0 0 + ( 12) 10 + b 1 1 1 0 1 0 0 0 ( 24) 10 a+b 1 1 0 1 1 1 0 0 ( 36) 10 (00000001 + 11111110): R 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 1 + (1) 10 + b 1 1 1 1 1 1 1 0 ( 2) 10 a+b 1 1 1 1 1 1 1 1 ( 1) 10 7) Siano date le seguenti coppie (a, b) di numeri binari su 8 bit: (11110101, 11101010) e (11001010, 01001100). Calcolare i risultati della somma (a + b) considerando gli operandi codificati rispettivamente come: - numeri interi positivi; - numeri interi con segno rappresentati in modulo e segno; - numeri interi con segno rappresentati in complemento a 1; - numeri interi con segno rappresentati in complemento a 2. Indicare la presenza di un eventuale overflow. (11110101, 11101010): Considerando gli operandi numeri interi positivi rappresentati con 8 bit:

Codifica dell'informazione 61 a 1 1 1 1 0 1 0 1 + (245) 10 + b 1 1 1 0 1 0 1 0 (234) 10 a+b 1 1 0 1 1 1 1 1 overflow Considerando gli operandi numeri interi con segno rappresentati in modulo e segno con 8 bit, gli operandi risultano entrambi negativi ( 117, 106) 10. Si effettui la somma dei valori assoluti (rappresentati con 7 bit) degli operandi: R 1 1 0 0 0 0 0 a 1 1 1 0 1 0 1 + (117) 10 + b 1 1 0 1 0 1 0 (106) 10 a + b 1 0 1 1 1 1 1 overflow Considerando gli operandi numeri interi con segno rappresentati in complemento a 1 con 8 bit, gli operandi risultano entrambi negativi ( 10, 21) 10. a 1 1 1 1 0 1 0 1 + ( 10) 10 + b 1 1 1 0 1 0 1 0 ( 21) 10 1 1 0 1 1 1 1 1 Sommando al risultato così ottenuto il riporto in uscita dal bit più significativo si ottiene il risultato finale: 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 + 0 0 0 0 0 0 0 1 a+b 1 1 1 0 0 0 0 0 ( 31) 10 Considerando gli operandi numeri interi con segno rappresentati in complemento a 2 con 8 bit: a 1 1 1 1 0 1 0 1 + ( 11) 10 + b 1 1 1 0 1 0 1 0 ( 22) 10 a+b 1 1 0 1 1 1 1 1 ( 33) 10 (11001010, 01001100): Considerando gli operandi numeri interi positivi rappresentati con 8 bit: R 1 1 0 0 1 0 0 0 a 1 1 0 0 1 0 1 0 + (202) 10 + b 0 1 0 0 1 1 0 0 (76) 10 a+b 0 0 0 1 0 1 1 0 overflow Considerando gli operandi numeri interi con segno rappresentati in modulo e segno con 8 bit, gli operandi risultano ( 74, +76) 10. Essendo gli operandi di segno discorde, occorre confrontare i valori assoluti (rappresentati con 7 bit) ed effettuare la sottrazione binaria tra il minuendo (76) 10 e il sottraendo (74) 10 tenendo conto dei prestiti:

62 Capitolo 2 P 0 0 0 0 0 1 0 a 1 0 0 1 1 0 0 (76) 10 b 1 0 0 1 0 1 0 (74) 10 a b 0 0 0 0 0 1 0 (2) 10 Premettendo il segno positivo al risultato si ottiene: 00000010 Considerando gli operandi numeri interi con segno rappresentati in complemento a 1 con 8 bit: R 1 1 0 0 1 0 0 0 a 1 1 0 0 1 0 1 0 + ( 53) 10 + b 0 1 0 0 1 1 0 0 (+76) 10 0 0 0 1 0 1 1 0 Sommando al risultato così ottenuto il riporto in uscita dal bit più significativo si ottiene il risultato finale: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 + 0 0 0 0 0 0 0 1 a+b 0 0 0 1 0 1 1 1 (23) 10 Considerando gli operandi numeri interi con segno rappresentati in complemento a 2 con 8 bit: R 1 1 0 0 1 0 0 0 a 1 1 0 0 1 0 1 0 + ( 54) 10 + b 0 1 0 0 1 1 0 0 (76) 10 a+b 0 0 0 1 0 1 1 0 (22) 10 2.13 Esercizi proposti 1) Eseguire le seguenti conversioni di base: (523,1) 10 base 2 (523,1) 10 base 8 (101,11) 2 base 8 (101,11) 2 base 10 2) Dato che (79) 10 = (142) b, determinare il valore della base b. 3) Scrivere le tabelle relative ai seguenti codici decimali pesati: (7,4,2, 1) (4, 4, 1, 2) (8, 7, 4, 2) (7, 3, 1, 2) (8, 4, -3, 2) 4) Eseguire le seguenti sottrazioni usando l aritmetica in complemento a 2: (111000) (110011)

Codifica dell'informazione 63 (11001100) (101110) (111100001111) (110011110011) (11000011) (11101000) 5) Dimostrare che la moltiplicazione di due numeri binari di n-bit in base b genera un prodotto su non più di 2n-bit. 6) Calcolare quozienti e resti delle seguenti divisioni, mostrando tutti i passi dell algoritmo di calcolo usato: (1101) / (0001) (1101) / (0010) (1101) / (0011) (1101) / (1100) 7) Assumendo che l esponente e sia nell intervallo 0 e X, con un bias pari a 9, che la base sia b, e che a mantissa sia composta da p-bit, determinare il più piccolo e il grande valore positivo esprimibile come numero in virgola mobile normalizzato. 8) Esprimere i seguenti numeri nel formato IEEE 754-1985 su 32-bit: ( 5) ( 6) ( 1,755) (484) (1 / 32) ( 1 / 32)