210 likes | 372 Views
Corso di Laurea in Biotecnologie corso di Informatica. Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione. Rappresentazione dell’Informazione. parte 1. Rappresentazione dell’informazione. Varie rappresentazioni sono possibili per la medesima informazione
E N D
Corso di Laurea in Biotecnologiecorso diInformatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione
Rappresentazione dell’informazione • Varie rappresentazioni sono possibili per la medesima informazione • Es. Testo scritto su carta o registrato su rastro • Rappresentazioni R1 e R2 sono equivalenti se data R1 è possibile ricavare R2 e viceversa • Es. Trascrizione del testo data la sua registrazione e viceversa • Scelta della rappresentazione • Spesso convenzionale ... • ... ma spesso legata a vincoli • Es. Rappresentazione binaria negli elaboratori
Rappresentazione binaria (o digitale) • Informazione codificata con i simboli 0 e 1 • Motivazioni di carattere tecnologico • due stati di carica elettrica di una sostanza • due stati di polarizzazione di una sostanza magnetizzabile • passaggio/non passaggio di corrente in un conduttore • passaggio/non passaggio di luce in un cavo ottico • Bit • cifra binaria – binary digit • Rappresentazione di un’informazione elementare che convenzionalmente è indicata dai simboli 0 e 1
bit e sequenze di bit • Un bit: si possono rappresentare 2 informazioni • 1 e 0 (rappresentazione convenzionale del valore dei bit) • vero e falso • bianco e nero • Sequenze di bit: si possono rappresentare più info • 2 bit: 4 configurazioni possibili (00, 01, 10, 11) • 3 bit: 8 configurazioni (000, 001, 010, 011, 100, 101, 110, 111) ... • 8 bit (1 byte): 28 configurazioni ... • N bit: 2N configurazioni
Codifica dell’informazione • Processo di associazione di informazioni a configurazioni di bit • È una convenzione ma deve necessariamente essere condivisa tra chi deve condividere l’informazione
Kb, Mb e Gb • 1 Kb (kilobyte) • = 1000 byte? No! • 1 Kb = 210 byte =1024 byte [20 = 1, 21 = 2, 22 = 4, 23 = 8, 24 = 16, 25 = 32, 26 = 64, 27 = 128, 28 = 256, 29 = 512, 210 = 1024] • 1 Mb (megabyte) • solitamente approssimato a 1 milione di byte • precisamente =1024 Kbyte = 1024 X 1024 byte = 1.048.576 byte • 1 Gb (gigabyte) = circa 1 miliardo di byte
Quanti bit per M informazioni? • Determinare x (numero di bit) tale che 2x M • Es. x = 6 per M = 50 • Infatti 25 = 32 (insufficiente) • Mentre 26 = 64 • Per l’alfabeto anglosassone • 26 lettere M = 26 • x tale che 2x26 • x = 5 • Es. 00000 = a, 00001= b, 00010 = c, … ma in realtà ...
La codifica dei caratteri • Standard ASCII (American Standard Code for Information Interchange) • Non è l’unico standard anche se il più diffuso • es. EBCDIC, UNICODE
ASCII • Con sequenze di 7 bit (128 configurazioni) sono codificati • i 52 simboli dell’alfabeto anglosassone (26 maiuscole e 26 minuscole) • le 10 cifre • i segni di punteggiatura • gli operatori aritmetici • alcuni caratteri speciali (es. @, %, $, [, ], ...)
ASCII esteso • 8 bit = 256 configurazioni • Prime 128 configurazioni (tutte precedute da 0) corrispondono alle 128 configurazioni dell’ASCII standard • Seguono altre codifiche di caratteri speciali (es. lettere accentate dei vari alfabeti: à, è, é, ü, ï, ç, ê ...) • Standard non universalmente riconosciuto da tutte le applicazioni e sistemi operativi
Dall’italiano all’ASCII... • Per scrivere in ASCII una parola (della lingua italiana), si mettono in sequenza le codifiche ASCII dei caratteri che compongono la parola a n i m a 1100001 1101110 1101001 1101101 1100001
…e ritorno • viceversa, per capire che cosa significa una sequenza di caratteri ASCII: • si spezza la sequenza in sequenze di 8 bit • si fa corrispondere a ogni sequenza il carattere opportuno 1100001 1101110 1101001 1101101 1100001 a n i m a
La codifica dei numeri • Rappresentazione ASCII delle cifre • può funzionare per numeri all’interno di testi • non è conveniente per elaborazioni numeriche • spreco di spazio (primi 3 bit sempre uguali) • problema per la gestione (e.g. operazioni aritmetiche) efficiente Es. 0 0110000 1 0110001 2 0110010 3 0110011 4 0110100 5 0110101
Notazione posizionale (decimale) • 354, ossia 3 centinaia, 5 decine, 4 unità • 3 * 102 + 5 * 101 +4 * 100 • con 3 cifre posso rappresentare i numeri da 0 a 999: 1000 numeri, pari a 103 (la base 10 elevata a potenza, con esponente uguale al numero di cifre che uso)
Notazione posizionale (in generale) • cn*10n + cn-1*10n-1+… + c1*101 + c0*100 • dove i coefficienti ci possono essere le cifre da 0 a 9 • con N cifre posso rappresentare i 10N numeri da 0 a 10N-1
Notazione posizionale (binaria) • sostituendo 10 con 2: • c0*100 + c1*101 + c2*102+…+ cn*10n • c0*20 + c1*21 + c2*22+…+ cn*2n • dove i coefficienti ci possono essere 0 o 1 • con N cifre riesco a rappresentare i 2N numeri da 0 a 2N-1
Conversione da notazione binaria a decimale • Es. la sequenza binaria 1011 rappresenta il numero: 1*23 + 0*22 + 1*21 + 1*20 = 1*8 + 0*4 + 1*2 + 1*1 = 11 (in base 10) • Generalmente si indica: 10112 = 1110
Conversione da notazione binaria a decimale • Es. la sequenza binaria 1011 rappresenta il numero: 1*23 + 0*22 + 1*21 + 1*20 = 1*8 + 0*4 + 1*2 + 1*1 = 11 (in base 10) • Generalmente si indica: 10112 = 1110
Conversione da decimale a binario • divido il numero per 2: il resto è la cifra c0 • divido il risultato per 2: il resto è la cifra c1 • divido il risultato per 2: il resto è la cifra c2 • mi fermo quando il risultato è 0 (eventualmente con resto 1)
Conversione da decimale a binario • Conversione di 2910 29/2 = 14 R = 1 (c0) 14/2 = 7 R = 0 (c1) 7/2 = 3 R = 1 (c2) 3/2 = 1 R = 1 (c3) 1/2 = 0 R = 1 (c4) • 111012