Il linguaggio dei computer: rappresentazione in binario e algoritmi di conversione 20 settembre 2017

Documenti analoghi
Architettura degli Elaboratori

Algoritmi di conversione Rappresentazione ottale e esadecimale. 25 settembre 2018

Rappresentazione ottale e esadecimale. 22 settembre 2017

Rappresentazioni ottale ed esadecimale Barbara Masucci

Rappresentazione di numeri interi e frazionari. 28 settembre 2015 (ore 9-11)

INPUT COMPUTER OUTPUT

Rappresentazione dell informazione. 27 settembre 2018

La codifica. dell informazione. (continua) Codifica dei numeri. Codifica dei numeri. Sono stati pertanto studiati codici alternativi per

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

La codifica. dell informazione

Codifica dell informazione numerica

Codifica dell informazione numerica

Insegnamento Informatica CdS Scienze Giuridiche

Corso di Architettura degli Elaboratori

La codifica. dell informazione

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

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

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Rappresentazione delle frazioni proprie Aritmetica in binario Barbara Masucci

I.4 Rappresentazione dell informazione

Modulo 2: RAPPRESENTAZIONE DEI DATI I sistemi di numerazione

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore

Rappresentazione (Codifica Binaria dei Numeri) ed Elaborazione delle Informazioni

CORSO DI ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di Numerazione

ARCHITETTURA DEGLI ELABORATORI CLASSE 2 A.A. 2014/15. Docente: Vincenzo Auletta RAPPRESENTAZIONE DELL INFORMAZIONE

Aritmetica dei Calcolatori Elettronici

Esame di Informatica. Facoltà di Scienze Motorie LE UNITA DI MISURA (1/4) LE UNITA DI MISURA (3/4) LE UNITA DI MISURA (2/4) Lezione 2

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

La codifica digitale

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

La codifica dei numeri

1-Rappresentazione dell informazione

Rappresentazione dei numeri

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore

La codifica dei numeri

Modulo 1 I numeri. Università degli Studi di Salerno

Rappresentazione in virgola mobile. 4 ottobre 2018

Conversione di un numero da binario a decimale

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

Laboratorio Informatico di Base. Concetti di base sull informatica

Sistemi di numerazioni e metodi di trasformazione

CODIFICA DELLE INFORMAZIONI. Prof. Marco Camurri

Corso di Architettura degli Elaboratori

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

Informazione e Registri - 2

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

DIPARTIMENTO DI MATEMATICA E INFORMATICA SISTEMI OPERATIVI. Anno Accademico 2017/2018. Docente: ing. Salvatore Sorce

Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale -

Rappresentazione dell informazione

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno. Controllo Elaborazione

Fondamenti di Informatica

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

04 Aritmetica del calcolatore

Codifica binaria. Rappresentazioni medianti basi diverse

1.2 Concetti base dell Informatica: Informazione

VS Informazioni INFORMAZIONE

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore

Codifica di informazioni numeriche

LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE. (Prof. Daniele Baldissin)

Rappresentazione dell informazione

Fondamenti di informatica

Sistemi di numerazione

Rappresentazione dell Informazione

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Sistemi di numerazione

La rappresentazione delle Informazioni

Seconda lezione. Rivediamo un po di definizioni principali Proseguiremo con nuovi codici

Rappresentazione dell Informazione

APPUNTI DI INFORMATICA

Modulo: Elementi di Informatica

Lezione 2. Rappresentazione dell informazione

Informatica di Base - 6 c.f.u.

Rappresentazione in virgola mobile Barbara Masucci

Architettura degli Elaboratori e Laboratorio

Rappresentazione dell informazione

Aritmetica in virgola mobile Algebra di Boole e reti logiche Esercizi. Mercoledì 8 ottobre 2014

La Codifica e la Rappresentazione dei dati

Codifica dell informazione numerica

Lezioni di Informarica. Prof. Giovanni Occhipinti

Elementi di informatica

La rappresentazione delle informazioni in un computer. La numerazione binaria

A.A. 2018/2019. Linguaggi, Codifica e Rappresentazione dell Informazione FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

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

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori

Codifica dell informazione

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

La "macchina" da calcolo

Programmazione I Paolo Valente /2017. Lezione 6. Notazione posizionale

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Numeri e caratteri in binario. Prof.ssa Antonella Serra

La codifica binaria. Sommario

I sistemi di numerazione e la numerazione binaria

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Elementi di informatica

La Rappresentazione dell Informazione

Transcript:

Il linguaggio dei computer: rappresentazione in binario e algoritmi di conversione 20 settembre 2017

Architettura degli Elaboratori L Architettura (informatica) è l insieme dei criteri in base ai quali è progettato e realizzato un sistema informatico. L Elaboratore (o calcolatore, o computer) è una macchina in grado di eseguire autonomamente sequenze di operazioni logiche-aritmetiche sui dati in ingresso (input) e restituire i risultati di tali operazioni in uscita (output)

Dal libro [P] Modello di calcolo

Achitettura Harward La memoria è suddivisa in: Memoria dati e Memoria istruzioni

Studieremo il processore MIPS Un processore vero (vedi Appendice E) Sarà il nostro esempio di riferimento per studiare i principi di progettazione di un processore Architettura Harward Modificata (Pipeline) Studieremo UN processore particolare, ma per astrarre concetti fondamentali della architettura degli elaboratori

Il nostro obiettivo finale Alla fine del corso saprete come funziona una versione semplificata del processore MIPS Dal libro [PH]

Il linguaggio dei computer

Linguaggio dei computer I computer «parlano» in binario: Spento, acceso (dei circuiti elettrici) ON, OFF 1, 0 bit = binary digit

Rappresentazione in binario Cosa possiamo rappresentare in binario? Numeri (interi, col segno, con la virgola) Parole (codificando le lettere) Istruzioni Programma «Informazione» Idea fondamentale su cui sono costruiti i calcolatori: programmi e dati rappresentati da numeri

Rappresentazione in binario Quali/ quanti interi posso rappresentare con una sequenza di n bit? n = 1 n = 2 n = 3 n = 4 0 0 = 0 0 0 1 = 1 1 1 0 = 2 1 1 = 3 0 0 0 0 1 1 1 1 00 = 0 01 = 1 10 = 2 11 = 3 00 = 4 01 = 5 10 = 6 11 = 7 Osserva: Se con k bit posso rappresentare p sequenze distinte, con k+1 bit posso rappresentare 2p sequenze distinte 0000 = 0 0001 = 1 0010 = 2 0011 0100. 0101. 0110. 0111. 1000. 1001.. 1010 1011 1100 1101 = 13 1110 = 14 1111 = 15

Rappresentazione con n bit Sarà fondamentale in varie scelte della nostra architettura Con n bit è possibile rappresentare tutti i 2 n interi compresi fra 0 e 2 n -1 Perché?

Prova Se con k bit posso rappresentare p sequenze distinte, con k+1 bit posso rappresentare 2p sequenze distinte 1 bit 2= 2 1 sequenze distinte 2 bit 4 = 2 2 sequenze distinte 3 bit 8 = 2 3 sequenze distinte 4 bit 16 = 2 4 sequenze distinte... k bit... 2 k sequenze distinte Si formalizza con una prova per induzione. Osservando che 2 2 k = 2 k+1

Rappresentazione in binario n = 1 n = 2 n = 3 n = 4 0000 = 0 0001 = 1 0010 = 2 0 00 = 0 0011 0 01 = 1 0100. 0 0 = 0 0 10 = 2 0101. 0 0 1 = 1 0 11 = 3 0110. 111 1 1 0 = 2 1 00 = 4 0. 1 1 = 3 1 01 = 5 1000. 1001. 1 10 = 6. 1010 1 11 = 7 1011 1100 1101 = 13 1110 = 14 1111 = 15 Ma perché 101 in binario rappresenta 5 e 1101 = 13?

o notazione araba: Notazione decimale 7 5 2 = 7 10 2 + 5 10 1 + 2 10 0 Ogni cifra ha un peso diverso secondo la posizione che occupa: 7 centinaia 5 decine 2 unità E una notazione posizionale

Notazione binaria 1 0 1 = 1 2 2 + 0 2 1 + 1 2 0 = 5 1 1 0 1 = 1 2 3 +1 2 2 + 0 2 1 + 1 2 0 = 13 Ogni cifra ha un peso diverso secondo la posizione che occupa E una notazione posizionale

Ambiguità Per distinguere le due rappresentazioni: (101) 2 = (5) 10 (1101) 2 = (13) 10 (1011) 2 = (11) 10

Da binario a decimale N = (10110101) 2 N = 1 2 7 + 0 2 6 + 1 2 5 + 1 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 N 2 7 2 5 2 4 2 2 2 0 128 32 16 4 1 181

Da decimale in binario N = (181) 10 Cerco la più grande potenza di 2 contenuta in 181: 181 = 128 + 53 = 2 7 + 53 53 = 32 + 21 = 2 5 + 21 21 = 16 + 5 = 2 4 + 5 5 = 4+1 = 2 2 +1 1 = 2 0 181 = 2 7 + 2 5 +2 4 +2 2 + 2 0 2 0 =1 2 1 =2 2 2 =4 2 3 =8 2 4 =16 2 5 =32 2 6 =64 2 7 =128 2 8 =256 181 = (10110101) 2 Nota: esiste un unico modo di esprimere un intero come somma di potenze distinte di 2 Vedremo altri «algoritmi» per i passaggi da decimale in binario e viceversa

Notazione posizionale (in base b generica) La notazione posizionale è definita solo per 2 e 10? Potremmo definirla per 8? (1 0 1) 10 = 1 10 2 + 0 10 1 + 1 10 0 (1 0 1) 2 = 1 2 2 + 0 2 1 + 1 2 0 = (5) 10 (1 0 1) 8 = 1 8 2 + 0 8 1 + 1 8 0 = ( 65 ) 10 (1 1 0 1) 10 = 1 10 3 + 1 10 2 + 0 10 1 + 1 10 0 (1 1 0 1) 2 = 1 2 3 +1 2 2 + 0 2 1 + 1 2 0 = (13) 10 (1 1 0 1) 8 = 1 8 3 +1 8 2 + 0 8 1 + 1 8 0 = ( 577 ) 10

Sequenze Come indicare una generica sequenza (o stringa) di lunghezza n? Come indicare una generica sequenza di lunghezza 8? a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 Dove a 7, a 6,, a 1, a 0 sono gli elementi della sequenza, in ordine; il relativo indice indica (appunto) la posizione all interno della sequenza. Gli indici sono i=0, 1,,6,7. Gli elementi sono a i. Esempio: 35082847 a 7 =3, a 6 =5, a 5 =0, a 4 =8, a 3 =2, a 2 =8, a 1 =4, a 0 =7 Una sequenza di lunghezza n la indicheremo così: a n-1 a n-2 a 1 a 0

Notazione binaria per numeri naturali In base 2. I simboli ammessi sono 0,1. Una sequenza / stringa di 0 e 1, di lunghezza n con a i {0, 1} per i = 0, 1,, n-1 rappresenta l intero N: a n-1 a n-2 a 1 a 0 N = (a n-1 a n-2 a 1 a 0 ) 2 = = a n-1 2 n-1 + a n-2 2 n-2 + + a 1 2 1 + a 0 2 0 In notazione compatta: N n 1 i 0 a i 2 i

Notazione posizionale (in base b generica) In base b. I simboli ammessi sono 0,1,, b-1. Una sequenza / stringa di 0, 1,, b-1, di lunghezza n a n-1 a n-2 a 1 a 0 con a i {0, 1,, b-1} per i = 0, 1,, n-1 rappresenta l intero N: N = (a n-1 a n-2 a 1 a 0 ) b = = a n-1 b n-1 + a n-2 b n-2 + + a 1 b 1 + a 0 b 0 In notazione compatta: N n 1 i 0 a i i b

Esempi (234) 10 (234) 8 2 2 10 3 10 4 2 2 8 3 8 4 156 234 10 10 (234) 16 2 2 16 3 16 4 564 10 (101) 10 (101) 8 2 1 10 0 10 1 2 1 8 0 8 1 65 101 10 10 (101) 2 2 1 2 0 2 1 5 10

Esercizio Da cosa sono caratterizzati i numeri pari in binario? (11010) 2 è pari? Dimostrare nel modo più formale, preciso e convincente la vostra affermazione.

Algoritmi di conversione binario decimale Da binario a decimale: moltiplico ogni cifra per l opportuna potenza di 2 e poi sommo Da decimale a binario: esprimo il numero come somma di potenze di 2, partendo dalla più grande potenza di 2 minore del numero Esistono altri «algoritmi» per convertire un numero dalla rappresentazione binaria alla decimale e viceversa. Bisogna conoscere più metodi di soluzione! Per scegliere il più adatto, veloce,. Mai accontentarsi!

Algoritmi di conversione Problema della conversione da binario a decimale Dati: n bit a n-1, a n-2,, a 1, a 0 Risultato: l intero N tale che N = (a n-1 a n-2 a 1 a 0 ) 2 Algoritmo = procedimento di calcolo che risolve il problema con una sequenza finita di passi elementari Problema della conversione da decimale a binario Dati: un intero N Risultato: n bit a n-1, a n-2,, a 1, a 0 tali che N = (a n-1 a n-2 a 1 a 0 ) 2

Verso un algoritmo di conversione da b=10 b = 10 N = (3752) 10 n = 4 (3 7 5 2) 10 = 3 10 3 + 7 10 2 + 5 10 1 + 2 10 0 oppure lo possiamo ottenere così, leggendo la stringa da sinistra verso destra (immaginate di non sapere quante cifre saranno): 3 3 7 5 2 3 10 + 7 = 37 3 7 52 37 10 + 5 = 375 3 7 5 2 375 10 + 2 = 3752 3 7 5 2 S 3 = 3 S 2 = 37 S 1 = 375 S 0 = 3752 = N Idea: 3 7 5 2 = 3 10 3 + 7 10 2 + 5 10 + 2 = = (3 10 2 + 7 10 + 5 ) 10 + 2 = = ( (3 10 + 7) 10 + 5 ) 10 + 2 = = ( ( (3) 10 + 7) 10 + 5 ) 10 + 2

b = 2 Verso un algoritmo di conversione da b=2 N = (1101) 2 n = 4 (1 1 0 1) 2 = 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 oppure lo possiamo ottenere così: 1 1 1 0 1 1 2 + 1 = 3 1 1 0 1 3 2 + 0 = 6 1 1 0 1 6 2 + 1 = 13 1 1 0 1 S 3 = 1 S 2 = 3 S 1 = 6 S 0 = 13 = N Idea: 1 1 0 1 = 1 2 3 + 1 2 2 + 0 2 + 1 = = (1 2 2 + 1 2+ 0 ) 2 + 1 = = ( (1 2 + 1) 2 + 0 ) 2 + 1 = = ( ( (1) 2 + 1) 2 + 0 ) 2 + 1

Verso un algoritmo di conversione da b=2 N = (a n-1 a n-2 a 1 a 0 ) 2 N = a n-1 2 n-1 + a n-2 2 n-2 + + a 1 2+ a 0 = (a n-1 2 n-2 + a n-2 2 n-3 + + a 2 2 + a 1 ) 2 + a 0 = ( (a n-1 2 n-3 + a n-1 2 n-4 + + a 2 ) 2 + a 1 ) 2 + a 0.... = (( (a n-1 2+ a n-2 ) 2 + + a 2 ) 2 + a 1 )2 + a 0 S 0 = S 1 2 + a 0 S 1 = S 2 2 + a 1 S 2 = S 3 2 + a 2.. S n-2 = S n-1 2 + a n-2 = (( ( (a n-1 ) 2+ a n-2 ) 2 + + a 2 ) 2 + a 1 )2 + a 0 S n-1 = a n-1

Algoritmo di conversione: binario in decimale MSD=cifra più significativa N = (a n-1 a n-2 a 1 a 0 ) 2 N = (( ( ( a n-1 ) 2+ a n-2 ) 2 + + a 2 ) 2 + a 1 )2 + a 0 LSD=cifra meno significativa N= S 0 = S 1 2 + a 0 S n-1 = a n-1 S 1 = S 2 2 + a 1 S 2 = S 3 2 + a 2.. S n-2 = S n-1 2 + a n-2 S n-1 = a n-1 Dal basso verso l alto: da a n-1 a a 0 ; da MSD a LSD S n-2 = a n-2 + 2S n-1 S n-3 = a n-3 + 2S n-2.. S i = a i + 2S i+1.. S 0 = a 0 +2S 1 S 0 =N

Esempio 1 S n-1 = a n-1 S n-2 = a n-2 +2S n-1 S n-3 = a n-3 +2S n-2.. S i = a i +2S i+1.. S 0 =N N = (a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 ) 2 n=8 (1 0 1 1 0 1 0 1) 2 S 7 = a 7 = 1 S 6 = a 6 +2S 7 = 0 + 2 = 2 S 5 = a 5 +2S 6 = 1 + 4 = 5 S 4 = a 4 +2S 5 = 1 + 10 = 11 S 3 = a 3 +2S 4 = 0 + 22 = 22 S 2 = a 2 +2S 3 = 1 + 44 = 45 S 1 = a 1 +2S 2 = 0 + 90 = 90 S 0 = a 0 +2S 1 = 1 + 180 = 181

Esempio 2 (11101001) 2 n=8 S 7 = a 7 = 1 S 6 = a 6 +2S 7 = 1 + 2 = 3 S 5 = a 5 +2S 6 = 1 + 6 = 7 S 4 = a 4 +2S 5 = 0 + 14 = 14 S 3 = a 3 +2S 4 = 1 + 28 = 29 S 2 = a 2 +2S 3 = 0 + 58 = 58 S 1 = a 1 +2S 2 = 0 + 116 = 116 S 0 = a 0 +2S 1 = 1 + 232 = 233

Esempio 3 (11111111) 2 n=8 S 7 = a 7 = 1 S 6 = a 6 +2S 7 = 1 + 2 = 3 S 5 = a 5 +2S 6 = 1 + 6 = 7 S 4 = a 4 +2S 5 = 1 + 14 = 15 S 3 = a 3 +2S 4 = 1 + 30 = 31 S 2 = a 2 +2S 3 = 1 + 62 = 63 S 1 = a 1 +2S 2 = 1 + 126 = 127 S 0 = a 0 +2S 1 = 1 + 254 = 255

Algoritmo di conversione: decimale in binario N = (a n-1 a n-2 a 1 a 0 ) 2 Dato: N. Risultato: a n-1, a n-2,, a 1, a 0 con a i = 0 o 1 Procedura inversa: dall alto verso il basso da a 0 ad a n-1 ; da LSD a MSD N= S 0 = S 1 2 +a 0 a 0 ed S 1 sono rispettivamente il resto e il quoziente della divisione di N= S S 1 = S 2 2 + a 0 per 2. 1 S 2 = S 3 2 + a 2 S i = S i+1 2 + a i S n-2 = S n-1 2 + a n-2 S n-1 = a n-1. a i ed S i+1 sono rispettivamente il resto e il quoziente della divisione di S i per 2.. Fino ad ottenere un S i =0. Algoritmo delle divisioni successive

Esempio 1 (decimale in binario) N=152 S 0 = N = a 0 +2 S 1 S 1 = a 1 + 2 S 2 S 2 = a 2 + 2 S 3.. S i = a i + 2 S i+1.. S n-1 = a n-1 N = (a n-1 a n-2 a 1 a 0 ) 2 S 0 = a 0 +2S 1 = 0 + 2 76 = 152 S 1 = a 1 +2S 2 = 0 + 2 38 = 76 S 2 = a 2 +2S 3 = 0 + 2 19 = 38 S 3 = a 3 +2S 4 = 1 + 2 9 = 19 S 4 = a 4 +2S 5 = 1 + 2 4 = 9 S 5 = a 5 +2S 6 = 0 + 2 2 = 4 S 6 = a 6 +2S 7 = 0 + 2 1 = 2 S 7 = a 7 +2S 8 = 1 + 2 0 =1 N = (10011000) 2 152 : 2 = 76 con resto 0 76 : 2 = 38 con resto 0 38 : 2 = 19 con resto 0 19 : 2 = 9 con resto 1 9 : 2 = 4 con resto 1 4 : 2 = 2 con resto 0 2 : 2 = 1 con resto 0 1 : 2 = 0 con resto 1 STOP

Esercizi (continua) Quanti bit sono necessari per rappresentare 18? Quanti bit sono necessari per rappresentare un intero n?

Riepilogo Rappresentazione binaria con n bit Algoritmi di conversione bin->dec e dec->bin [P] parr. 1.1, 1.2, 1.3.1

Oggi pomeriggio ricevimento 14-16 Domani San Matteo: università chiusa! (avete più tempo per studiare e pensare agli esercizi!)