Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Dispensa CES - Informatica Generale, Dispense di Elementi di Informatica

Dispensa per l'esame di Informatica Generale, corso Comunicazione e società  2009/2010

Tipologia: Dispense

Pre 2010

Caricato il 22/07/2010

Marta_89
Marta_89 🇮🇹

4.3

(8)

1 documento

1 / 75

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA GENERALE
Prof. Gianfranco Prini
CES – 2° anno
LEZIONE 1
GLI ALFABETI
Alfabeto: un insieme finito di oggetti (detti simboli).
Stringa (su un alfabeto A dato): una sequenza ordinata e finita di simboli di A.
oLo stesso simbolo può occorrere (ingl . to occur, occurrence) più volte in
una stringa.
oEsiste una stringa particolare, detta stringa vuota (una sequenza di zero
simboli), normalmente indicata con la lettera greca "lambda".
I simboli sono stati introdotti nella cultura umana per rappresentare "qualcosa".
Ricerchina: trovare uno o più siti in cui si parli di:
- cronologia della fine dell'ultima glaciazione (dal 20000 a.C. in poi)
- comparsa di una prima forma di commercio a lunga distanza (p.es. ossidiana, pietre
preziose, pelli "preziose", etc.)
- comparsa di una prima simbologia per rappresentare oggetti del commercio o più in
generale dell'economia e/o della vita quotidiana
- relazione tra queste simbologie primitive e la comparsa delle prime forme scrittura
basate su ideogrammi (p.es. i geroglifici egizi)
Domanda: nel linguaggio umano, come si rappresentano gli oggetti di cui si sta
trattando?
- in quello parlato, ci si riferisce a oggetti/concetti mediante concatenazione di suoni
- in quello scritto, non si usano più ideogrammi (ossia simboli immediatamente evocativi
dell'oggetto/concetto di cui si vuole parlare), ma si usano invece segni grafici che
rappresentano i suoni che, concatenati, danno luogo alle parole del linguaggio parlato
(p.es. la stringa "mamma" nell'alfabeto della in lingua italiana non evoca
immediatamente una figura femminile, etc. ma evoca una sequenza di cinque suoni la
quale a sua volta evoca una figura femminile, etc.)
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b

Anteprima parziale del testo

Scarica Dispensa CES - Informatica Generale e più Dispense in PDF di Elementi di Informatica solo su Docsity!

Prof. Gianfranco Prini CES – 2° anno

LEZIONE 1

GLI ALFABETI

Alfabeto : un insieme finito di oggetti (detti simboli). Stringa (su un alfabeto A dato): una sequenza ordinata e finita di simboli di A. o Lo stesso simbolo può occorrere (ingl. to occur , occurrence ) più volte in una stringa. o Esiste una stringa particolare, detta stringa vuota (una sequenza di zero simboli), normalmente indicata con la lettera greca "lambda". I simboli sono stati introdotti nella cultura umana per rappresentare "qualcosa". Ricerchina : trovare uno o più siti in cui si parli di:

  • cronologia della fine dell'ultima glaciazione (dal 20000 a.C. in poi)
  • comparsa di una prima forma di commercio a lunga distanza (p.es. ossidiana, pietre preziose, pelli "preziose", etc.)
  • comparsa di una prima simbologia per rappresentare oggetti del commercio o più in generale dell'economia e/o della vita quotidiana
  • relazione tra queste simbologie primitive e la comparsa delle prime forme scrittura basate su ideogrammi (p.es. i geroglifici egizi) Domanda : nel linguaggio umano, come si rappresentano gli oggetti di cui si sta trattando?
  • in quello parlato , ci si riferisce a oggetti/concetti mediante concatenazione di suoni
  • in quello scritto , non si usano più ideogrammi (ossia simboli immediatamente evocativi dell'oggetto/concetto di cui si vuole parlare), ma si usano invece segni grafici che rappresentano i suoni che, concatenati, danno luogo alle parole del linguaggio parlato (p.es. la stringa "mamma" nell'alfabeto della in lingua italiana non evoca immediatamente una figura femminile, etc. ma evoca una sequenza di cinque suoni la quale a sua volta evoca una figura femminile, etc.)

Prof. Gianfranco Prini CES – 2° anno Gli alfabeti in informatica vengono utilizzati per rappresentare informazioni né più né meno come fanno gli alfabeti su cui sono costruite le lingue naturali. Differenza principale essendo che il modo di comporre le stringhe è assai meglio precisato :

  • nella forma : in informatica è chiaramente definito quali siano le stringhe "accettabili" rispetto a quelle che non lo sono (p.es. la stringa "frolloccone" è una sequenza "plausibile", nel senso che "suona bene" per una persona che abbia famigliarità con la lingua italiana, ma non è detto che davvero esista in questa lingua; in informatica è sempre determinabile se una certa stringa esiste o meno nel particolare linguaggio che stiamo utilizzando )
  • nella rappresentazione del significato : in informatica è chiaramente definito (e in maniera non ambigua) che cosa si intenda rappresentare con una particolare stringa data in ogni particolare contesto (p.es. la stringa "riso" nella lingua italiana può rappresentare un'espressione del volto oppure una derrata alimentare; in informatica sono bandite tutte le ambiguità di questo tipo).

Principali alfabeti in uso nell'informatica:

 Alfabeti binari (composti di due soli simboli):

  • alfabeto booleano = { T , F } dove 'T' rappresenta il concetto di verità e 'F' quello di falistà (non nel senso filosofico o religioso, ma in quello logico)
  • alfabeto "dei circuiti" = { H , L } dove 'H' sta a rappresentare un valore di tensione elettrica (p.es. 5 volt) superiore al valore rappresentato da 'L' (p.es. -5 volt)
  • alfabeto "delle cifre binarie" = { 0 , 1 } dove i simboli '0' e '1' non hanno alcuna connotazione numerica , ma stanno a rappresentare solo l'uno o l'altro degli stati in cui si può trovare un componente bistato , ossia di un componente che può assumere solo uno di due possibili stati (p.es. le memorie informatiche sono costituite di una notevole quantità di componenti bistato, ciascuno dei quali può trovarsi per l'appunto in uno o nell'altro degli stati per lui possibili, rappresentati rispettivamente dai simboli '0' e '1'). Ricerchina : trovare uno o più siti in cui si parli:
  • della transizione dalle forme di scrittura ideogrammatiche a quelle "alfabetiche" in cui ogni lettera rappresenta un suono, etc.
  • della cronologia e della geografia della comparsa di queste ultime forme di scrittura "alfabetiche"

Prof. Gianfranco Prini CES – 2° anno

LEZIONE 2

CONVERSIONE TRA ALFABETI

Domanda : quante sono le stringhe binarie (i.e. composte di soli simboli dell'alfabeto delle cifre binarie) di lunghezza 3? Proviamo a elencarle: 000, 100, 010, 001, 111, 011, 101, 110 Visto che le cifre ottali sono in numero di 8, esiste ovviamente una corrispondenza biunivoca tra stringhe binarie di lunghezza 3 e cifre binarie. Anzi, ne esistono molte: Esempio 1: 000-0, 100-1, 010-2, 001-3, 111-4, 011-5, 101-6, 110- Esempio 2: 000-0, 001-1, 010-2, 011-3, 100-4, 101-5, 110-6, 111- Chiameremo canonica la corrispondenza dell'esempio 2. Domanda : esiste una corrispondenza simile per l'alfabeto esadecimale? Proviamo a elencare tutte le stringhe binarie di lunghezza 4. Esempio 1: 0000, 1000, 0100, 0010, 1110, 0110, 1010, 1100, 0001, 1001, 0101, 0011, 1111, 0111, 1011, 1101 Esempio 2: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 Chiameremo canonica la elencazione di cui all'esempio 2, che dà luogo alla corrispondenza canonica: 0000-0, 0001-1, 0010-2, 0011-3, 0100-4, 0101-5, 0110-6, 0111-7, 1000-8, 1001-9, 1010- A, 1011-B, 1100-C, 1101-D, 1110-E, 1111-F Abbiamo detto che in informatica (nel senso hardware del termine) si fa un largo (quasi esclusivo) uso di componenti bistato , per rappresentarne lo stato dei quali utilizziamo cifre binarie. Ipotizzando di avere una catena p.es. di 8 elementi bistato, lo stato complessivo della catena si può rappresentare con una stringa di otto cifre binarie 0/1. Esempio: in piedi, seduto, in piedi, in piedi, seduto, seduto, seduto, in piedi Se decidiamo di rappresentare con 0 lo stato "seduto" e con 1 lo stato "in piedi", quanto sopra può essere rappresentato con la stringa 10110001.

Prof. Gianfranco Prini CES – 2° anno Problema: quando le stringhe diventano troppo lunghe, l'occhio si confonde. Esempio: in 01110011010100100001110000111010 è difficile cogliere al volo il valore della 17-esima posizione. Per rendere più facilmente manipolabili queste lunghe sequenze, le si spezzettano in parti di lunghezza uguale (p.es. di lunghezza 4) e si rappresentano i singoli frammenti non mediante cifre binarie, ma con i simboli di un alfabeto più ricco (p.es quello delle cifre esadecimali) utilizzando una corrispondenza biunivoca (p.es. quella canonica) tra i due. 0111 0011 0101 0010 0001 1100 0011 1010 7 3 5 2 1 C 3 A Quindi la stringa 01110011010100100001110000111010 può essere compattamente rappresentata dalla stringa esadecimale 73521C3A. Domanda : perché mai abbiamo parlato di alfabeti di cifre ottali ed esadecimali e non p.es. di alfabeti tetrali (di 4 simboli) o trentaduali (di 32 simboli) o altro ancora? La ragione è puramente storica : in informatica si sono affermate "architetture di sistema" (hardware) in cui venivano privilegiate sequenze di componenti bistato di lunghezza pari dapprima a multipli di 6 (p.es. 12, 18, 24, 36), e poi a multipli di 8 (p.es. 8, 16, 32). Terminologicamente, le sequenze di componenti di lunghezza 6 oppure 8 vennero chiamate byte (mentre i singoli componenti vennero chiamati bit ). Divenne naturale rappresentare le sequenze di bit di un byte-di-6-bit con due cifre ottali e le sequenze di bit di un byte-di-8-bit con due cifre esadecimali. Esempio 1: in una macchina "a 12 bit" (come si dice in gergo per indicare una macchina che privilegia le sequenze di 12 bit) la sequenza 001100101110 viene considerata come composta di due byte (di 6 bit ciascuno) 001100 e 101110 i quali sono rappresentabili in notazione ottale come 14 e 56 dando luogo alla rappresentazione complessiva 1456 per l'intera stringa. Esempio 2: in una macchina "a 16 bit" (come si dice in gergo) la sequenza 0011001011100011 viene considerata come composta di due byte (di 8 bit ciascuno) 00110010 e 11100011 i quali sono rappresentabili in notazione esadecimale come 32 e E3 dando luogo alla rappresentazione complessiva 32E3 per l'intera stringa. Nel passaggio da architetture prevalentemente "a 6N bit" ad architetture prevalentemente "a 8N bit" non si è passati subito da notazione ottale a notazione esadecimale, ma per lungo tempo si utilizzò la notazione ottale (e talora si usa ancora oggi) per rappresentare anche le sequenze di lunghezza 8*N. A tal fine, per le architetture le cui sequenze non fossero di lunghezza divisibile sia per 6 che per 8, si "penalizzarono" le cifre all'inizio della sequenza, tollerando in tale posizione sequenze binarie più corte di 3.

Prof. Gianfranco Prini CES – 2° anno

LEZIONE 3

COD. UNICODE

Nelle tabelle che si trovano in Wikipedia (http://en.wikipedia.org) alla voce "ASCII" si parla di glifi. Un glifo è una delle (tante) possibili maniere di "scrivere" un carattere (p.es. in una font piuttosto che in un'altra, in un certo corpo tipografico piuttosto che in un altro, etc.). Il concetto di carattere in quanto tale (p.es. "la lettera A") prescinde dal fatto che esso possa essere rappresentato da un glifo piuttosto che da un altro: trattasi di "una astrazione di livello superiore" rispetto a quella che definisce il concetto di glifo. La versione di ASCII vista finora si chiama anche (in gergo) ASCII-7 o ASCII a 7 bit. L'alfabeto latino rappresentato in ASCII-7 è privo di diacritici (p.es. accenti gravi e acuti, umlaut, cedille, etc.). Lo standard ISO/IEC 8859 (vedere la corrispondente voce di Wikipedia), detto gergalmente (e assai impropriamente) ASCII-8, o ASCII a 8 bit , affronta sia il problema dei diacritici, sia quello della codifica di alcuni alfabeti non latini (p.es. greco, cirillico, etc.). Lo standard Unicode (vedere, oltre alla voce "Unicode" di Wikipedia, il sito "ufficiale" http://www.unicode.org) introduce una codifica unica e universale (potenzialmente) per tutti gli alfabeti usati nel mondo, nel presente e nel passato. Unicode utilizza per i caratteri una codifica a 16 bit (con estensioni che per ora non approfondiremo). Per molti caratteri Unicode, oltre alla codifica a 16 bit, viene fornito un nome "ufficiale": p.es. nella tabella che riporta la codifica dell'alfabeto latino (http://www.unicode.org/charts/PDF/U0000.pdf), al carattere di codice Unicode 0041 viene assegnato il nome "LATIN CAPITAL LETTER A". Un carattere dotato di un diacritico ammette in Unicode sia una codifica monolitica (p.es. "LATIN CAPITAL LETTER A WITH ACUTE", codice Unicode 00C1), sia una codifica data dalla giustapposizione di due codici distinti: un codice per rappresentare il carattere (p.es. "LATIN CAPITAL LETTER A", codice Unicode 0041) accompagnato da un secondo codice per rappresentare il relativo diacritico (p.es. "ACUTE ACCENT", codice Unicode 00B4). Un carattere con diacritico, anche se rappresentato (in modalità non monolitica) con due distinti codici, deve essere sempre e comunque visualizzato mediante un glifo unico "diacriticizzato" (p.es. come lettera "A" accentata) e non mediante due glifi distinti. Analogamente, un carattere con diacritico rappresentato in modalità non monolitica deve essere trattato come se fosse un carattere unico "diacriticizzato" (rappresentato monoliticamente) ai fini p.es. della disposizione in ordine lessicografico (o alfabetico) dei termini di una lingua (p.es. la "LATIN CAPITAL LETTER A WITH RING ABOVE", codice Unicode 00C5, presente in alcune lingue scandinave, è considerata come una lettera

Prof. Gianfranco Prini CES – 2° anno diversa dalla "LATIN CAPITAL LETTER A", e segue la "LATIN CAPITAL LETTER Z" nell'ordine alfabetico di quelle lingue; anche se rappresentata non monoliticamente dal codice Unicode 0041 della "LATIN CAPITAL LETTER A" seguito dal codice Unicode 02DA del "RING ABOVE", essa deve comunque essere considerata come il carattere monolitico "LATIN CAPITAL LETTER A WITH RING ABOVE" che segue la "LATIN CAPITAL LETTER Z" ai fini dell'ordinamento lessicografico). Nelle tabelle che definiscono la codifica Unicode, i glifi che definiscono l'aspetto grafico dei diacritici vengono visualizzati unitamente alla posizione che essi devono occupare rispetto alla (meglio: al glifo della) lettera di cui essi costituiscono diacritico (vedasi p.es. la colonna di codice 065 in http://www.unicode.org/charts/PDF/U0600.pdf).

Prof. Gianfranco Prini CES – 2° anno Esempio : T = { 0 , 1 }, N = { S }, simbolo iniziale S e produzioni: S => 0 S => 1 S => 0S S => 1S Il linguaggio generato da una grammatica è l'insieme delle stringhe composte di soli caratteri terminali (i.e. stringhe di T) ottenibili, a partire dal simbolo iniziale, mediante un processo di trascrizione successiva di simboli non terminali secondo quanto specificato dalle produzioni : un simbolo non terminale che si trova alla sinistra della freccia di una produzione viene trascritto con la corrispondente stringa che si trova alla destra della freccia nella medesima produzione. [Nota: quelli così definiti si chiamano più propriamente linguaggi liberi da contesto , o context-free .] Esempio : continuando l'esempio precedente, le seguenti sono derivazioni valide (di stringhe appartenenti al linguaggio generato dalla grammatica data): S --> 1 S --> 0S --> 00S --> 001S --> 0010 Esercizio : convincersi che la grammatica dell'esempio precedente genera il linguaggio costituito di tutte e sole le stringhe binarie di lunghezza non nulla, cercando di dare una dimostrazione di questo fatto. In particolare, esso è un sottoinsieme proprio di T, non contenendo esso la stringa vuota. Esempio : T = { ( , ) }, ossia T è l'alfabeto composto dei soli due simboli "parentesi tonda aperta" e "parentesi tonda chiusa", N = { S }, simbolo iniziale S e produzioni: S => () S => SS S => (S) Le seguenti sono derivazioni valide: S --> () S--> (S) --> ((S)) --> ((())) S --> SS --> (S)SS --> (())(S)() --> (())(())()

Prof. Gianfranco Prini CES – 2° anno Esercizio : convincersi che il linguaggio generato da questa grammatica è l'insieme di tutte e sole le stringhe di parentesi aperte e chiuse che "bilanciano" nel senso delle espressioni algebriche (per cui p.es. la stringa "(()))(" non è parte del linguaggio, in quanto p.es. il suo quinto carattere è una "parentesi tonda chiusa", la quale non "chiude" alcuna parentesi aperta che la precede -- convincersi che detta stringa non è generabile dalla grammatica data). Cercare di fornire una dimostrazione di questo fatto. Esercizio : dato T = { 0 , 1 } si definisca una grammatica che sia in grado di generare il linguaggio su T costituito di tutte e sole le stringhe (binarie) di lunghezza non nulla che contengano un numero pari (eventualmente nullo) di occorrenze del simbolo "1".


Prof. Gianfranco Prini CES – 2° anno => | => 0 | 1 | ... | 9 => , => => => = => | | => | => | => => => + | - => + | - | * | / => () => somma | differenza | ... | potenza | destra | sinistra | ... => | => | ; => | : => => | Esercizio : aggiungere produzioni per rappresentare numerali decimali nel cosiddetto formato scientifico (p.es. -3,14E-4). Esercizio : con la grammatica di cui sopra, è corretto scrivere p.es. -++--3, espressione che probabilmente Excel non accetterebbe. Modificare la grammatica delle espressioni in modo tale da evitare le sequenze di operatori unari di questo tipo. Esercizio : riesaminare l'intera grammatica di cui sopra per individuare ed eliminare eventuali ridondanze palesi e non funzionali alle miglior comprensione della grammatica medesima, rettificando gli eventuali errori e colmando le eventuali lacune. Esercizio : cercare in rete una pagina che definisca la sintassi di un linguaggio informatico a propria scelta (p.es. di un linguaggio di programmazione quale Java, di un linguaggio definizione/gestione di basi di dati quale SQL, etc.) e cercare di decifrarne la grammatica, anche se le produzioni fossero espresse in formalismi più articolati di quello presentato qui sopra per le espressioni Excel.


Prof. Gianfranco Prini CES – 2° anno

LEZIONE 5

NOTAZIONI POSIZIONALI

Storia

Che cosa intendiamo dire quando scriviamo: 27+31=58? Per numerale si intende una "scrittura" (ossia una stringa in un linguaggio dato) atta a rappresentare un numero. Quello di numerale è un concetto puramente sintattico. Quello di numero è invece semantico. [Sintassi e semantica sono due delle tre caratteristiche importanti di un linguaggio secondo Wittgenstein. La terza è la pragmatica, ossia la disciplina che studia il linguaggi in relazione ai loro utenti .] Sintassi e semantica vengono discusse in relazione a ciò che scriviamo (in un particolare linguaggio) e alla maniera di mettere in relazione le due cose. Che cosa intendiamo per "27"? Quando scriviamo "27" intendiamo parlare di due decine e di sette unità , dove i concetti di decina e di unità sono due concetti "astratti" (nel senso latino- anglosassone del termine) così come i concetti di due e di sette, dove il concetto di due viene espresso mediante la cifra/numerale "2" e quello di sette mediante la cifra/numerale "7". Ma il concetto di decina e di unità dove sta esplicitamente scritto nella stringa "27"? Non sta esplicitamente scritto da nessuna parte, ma sta implicitamente scritto nella posizione delle cifre (quella più a destra rappresenta la quantità di unità, quella immediatamente alla sinistra rappresenta la quantità di decine, quella ancora più a sinistra la quantità di centinaia, etc.). Per questo motivo la notazione si chiama posizionale in quanto è la posizione che dà un significato o peso alle cifre. *Curiosità : un tempo e in alcune culture il significato delle cifre veniva espresso in altro modo , p.es.:  in maniera esplicita (come si faceva talora nei libri contabili del medioevo europeo): 2 d e 7 u ;  oppure in maniera implicita utilizzando simboli diversi per le varie posizioni (vd. p.es. i Greci). *Leggenda metropolitana : “le notazioni posizionali sono state inventate dagli arabi”.

Prof. Gianfranco Prini CES – 2° anno

LEZIONE 6

NOTAZIONI POSIZIONALI

Tecnica

Torniamo all'esempio di ieri: 27 + 31 = 58. In questa espressione "27" è un numerale (concetto sintattico) che rappresenta il numero ventisette (concetto semantico) in cui usa una notazione posizionale in base 10. Ossia, si fa uso di dieci cifre incluso lo "0" (che rappresenta il numero zero , entità astratta che può essere vista come la quantità di elementi presenti nell'insieme vuoto ), e si attribuisce a ogni cifra un peso diverso in funzione della sua posizione. I pesi rappresentano (a partire dalla cifra di destra) unità, decine, centinaia, migliaia, etc. In altre parole detto X il peso di una cifra, il peso della cifra alla sua immediata sinistra è 10X. Quindi, nell'esempio, il peso della cifra "7" all'estrema destra è uno, mentre quello della cifra "2" è dieci. In un esempio maggiormento complesso, il numerale: "3268071" rappresenta il numero: 310^6 + 210^5 + 610^4 + 810^3 + 010^2 + 710^1 + 110^ In quanto sopra, si abusa leggermente del linguaggio, perché in realtà utilizziamo cifre per discutere di numeri: sarebbe stato più appropriato scrivere: tre moltiplicato dieci alla sesta, più due moltiplicato dieci alla quinta, etc. Domanda : questa tecnica funziona solo per la base 10? Neanche per sogno: funziona per qualunque base. Esempio: se noi considerassimo l'alfabeto delle cifre ottali, il numerale: "673201" rappresenterebbe il numero (ipotizzando di attribuire alle cifre ottali il valore canonico che si evince dalla sequenza canonica , nella quale alla cifra "0" corrisponde il valore zero, alla cifra "1" corrisponde il valore uno, etc.): sei per otto alla quinta, più sette per otto alla quarta, più sei per otto alla terza, etc. oppure con abuso di linguaggio, in notazione decimale , scriveremmo come: 68^5 + 78^4 + 38^3 + 28^2 + 08^1 + 18^

Prof. Gianfranco Prini CES – 2° anno Esempio : utilizzando invece l'alfabeto esadecimale, il numerale: "ABCDEF" rappresenta (ipotizzando la corrispondenza canonica tra numeri e cifre esadecimali ordinate secondo la sequenza canonica) il numero che, in notazione decimale , scriveremmo come: 1016^5 + 1116^4 + 1216^3 + 1316^2 + 1416^1 + 1516^ Esempio : utilizzando invece l'alfabeto binario, il numerale (sempre ipotizzando che i numeri zero e uno siano in corrispondenza canonica con le cifre "0" e "1", per cui il numero zero viene associato alla cifra "0" e il numero uno viene associato alla cifra "1" - ma sarebbe perfettamente lecita la convenzione opposta -): "110010" rappresenta invece: 12^5 + 12^4 + 02^3 + 02^2 + 12^1 * 02^ che altro non è che il numero che in notazione decimale esprimeremmo con il numerale "50". Terminologicamente , gli informatici esprimono sinteticamente quanto sopra scrivendo: 1100102 = 50 10 che si "dovrebbe" leggere: il numerale binario "110010" rappresenta lo stesso numero del numerale decimale "50". Esercizio : con riferimento a esempi precedenti, completare le seguenti uguaglianze: 6732018 = ...... 10 ABCDEF 16 = ...... 10 326807110 = ...... 10 D'ora in poi assumeremo implicitamente che tutte le corrispondenze tra cifre e numeri rispettino le sequenze canoniche laddove esistono.

Prof. Gianfranco Prini CES – 2° anno Esiste un metodo rapido per passare da una base che sia una potenza di due (p.es. base otto e base sedici) a base due e viceversa. La sequenza canonica che associa:  alle cifre ottali gruppetti di tre cifre binarie,  alle cifre esadecimali gruppetti di quattro cifre binarie ci viene in aiuto: dato un numerale in notazione ottale [risp. esadecimale] basta sostituire ciascuna cifra ottale [risp. esadecimale] con la corrispondente stringa di tre [risp. quattro] cifre binarie. La sequenza canonica che associa a cifre ottali [risp. esadecimali] stringhe di tre [risp. quattro] cifre binarie è coerente con l'aritmetica delle notazioni posizionali: 016 = 0000 2 116 = 0001 2 ... F 16 = 1111 2 Giustificazione di questo fatto ("convinsor", e non una dimostrazione vera e propria): 658 = 68^1 + 58^0 = cinquantatre = (^5310) = x2^5 + y2^4 + z2^3 + t2^2 + u2^1 + v2^0 = = 12^5 + 12^4 + 02^3 + 12^2 + 02^1 + 12^0 = = 1101012 {notare che 1102 = 68 e 1012 = 58 nella sequenza canonica} = (12^5 + 12^4 + 02^3) + (12^2 + 02^1 + 12^0) = = (12^2 + 12^1 + 02^0 ) * 2^3 + (12^2 + 02^1 + 12^0)* 2^0 = = (12^2 + 12^1 + 02^0)8^1 + (12^2 + 02^1 + 12^0)8^0 = = 68^1 + 58^0 = 65 8

Prof. Gianfranco Prini CES – 2° anno Esercizio : completare le seguenti uguaglianze sfruttando il trucco delle sequenze canoniche: 1372658 = 4A67FE852 16 = 4A67FE852 16 = 4A67FE852 16 = L'articolo di Leibniz di cui alla lezione di ieri discute in maniera leggermente più formale quanto sopra detto. Approfondimento :  andarsi a cercare online quell' articolo di Leibniz e leggerselo;  andarsi a cercare chi era il gesuita Bouvet e che cosa riguardasse la sua corrispondenza con Leibniz a proposito del libro I-Ching (quello dei trigrammi e degli esagrammi).