Fondamenti di Informatica - INTRANETcesposito/materiale/lezioni/Argomento02_Codi... · I Linguaggi...

Post on 23-Feb-2019

222 views 1 download

Transcript of Fondamenti di Informatica - INTRANETcesposito/materiale/lezioni/Argomento02_Codi... · I Linguaggi...

FondamentidiInformaticaLinguaggi , Codif icaeRappresentazionedel l ’ Informazione

Prof. Chr i st ian Espos i toCorso d i Laurea in Ingegner ia Meccanica e Gest iona le (C lasse I )A .A . 2017/18

Linguaggi,CodificaeRappresentazionedell’Informazione

Cosaabbiamovistolavoltascorsa

• Glielaboratorisonostrumentiperrisolvere(oaiutarearisolvere)problemibasatisulleinformazioni

• Macomeciòavviene?1. Abbiamobisognodicodificare ememorizzareopportunamente

dati einformazioni2. Abbiamobisognodiimpartire legiusteistruzioniperrisolvere

correttamenteproblemi

Linguaggi,CodificaeRappresentazionedell’Informazione 01/109

Cosavedremooggi• Glielaboratorisonostrumentiperrisolvere(oaiutarearisolvere)problemibasatisulleinformazioni

• Macomeciòavviene?1. Abbiamobisognodicodificareememorizzareopportunamente

datieinformazioni2. Abbiamobisognodiimpartire legiusteistruzioniperrisolvere

correttamenteproblemi

Linguaggi,CodificaeRappresentazionedell’Informazione 02/109

QualeLinguaparla l’Elaboratore?• Comerendere dati einformazioni comprensibili adunelaboratore?

• Informazioni edati peressere trattati daunelaboratore devono essereopportunamente codificati

Linguaggi,CodificaeRappresentazionedell’Informazione 03/109

Linguaggio• Alfabeto

• Collezionedisimboligrafici,aventidisolitounordinebenpreciso,cheservonoarappresentareleparolediunalingua

• I simbolispesso(manonsempre)sonolettereovverorappresentazionescrittadisuonilinguistici

• Vocabolario(olessico)• Insiemedelleparoleammissibilidiunalingua

• Grammatica• Insiemediregoleutiliallacorrettacostruzionedifrasi,sintagmieparole

• Ilterminesiriferisceallostudiodellesuddetteregole

• Semantica• Studiailsignificatodelleparole(semanticalessicale),degliinsiemidelleparole,dellefrasi(semanticafrasale)edeitesti

Linguaggi,CodificaeRappresentazionedell’Informazione 04/109

LaFunzionedeiLinguaggi• Ilinguaggi(verbali,nonverbali,orali,scritti,etc.)sonostrumentichecontribuisconoa• Rappresentareleinformazioni

• Concetti,pensieri,emozioni,etc.,vengonoformalizzatiattraversoilinguaggiperpoteresserememorizzati,trasferitiedelaborati

• Memorizzareleinformazioni• Lascrittura

• Trasferireleinformazioni• Lacomunicazione

• Elaborareleinformazioni• Lededuzioninellalogica

Linguaggi,CodificaeRappresentazionedell’Informazione 05/109

ProblemirelativiaiLinguaggi• Accordosuisimboli

• abcdef g…

• Accordosullessico• casa,gatto,automobile,vado,…

• Accordosullagrammatica• <soggettoverbocomplemento>

• Accordosullasemantica• Lanonnachiudelaporta(OK)• Laportachiudelanonna(NO)

• Accordosullacodifica• Regolepertrasformaresimboli,paroleefrasidiunlinguaggioinunanuovarappresentazioneconpossibilitàdieffettuareinmanieracorrettaanchel’operazioneinversa• “a”incodiceMorse(SamuelMorse,pittoreestoricoinglese)è“.– ”• “b”incodiceMorseè“– ...”

Linguaggi,CodificaeRappresentazionedell’Informazione 06/109

CodiceBraille• Lettera“a”

• Lettera“b”

Linguaggi,CodificaeRappresentazionedell’Informazione 07/109

CodificadeiNumeri• Linguaggiodipartenza

• Inumeri

• Codifica1• Numerazionedecimale

• 5,45,670

• Codifica2• Numerazionebinaria

• 101,…

• Codifica3

Linguaggi,CodificaeRappresentazionedell’Informazione 08/109

Quipo• Quipo èuninsiemedicordicelleannodate,distanziateinmodosistematicotraloroelegateaunacordapiùgrossaecortachelesorregge.

•Iquipo servivanopericalcolimatematici.Inodidellecordesonodidiversicolori:rappresentavanonumeri,edallalororeciprocaposizionesenepotevanoricavareleunità,ledecine,lecentinaiaelemigliaia.

Linguaggi,CodificaeRappresentazionedell’Informazione 09/109

ILinguaggiNaturali:Ambiguità• Percomunicaretralorogliuominihannosviluppatoilinguagginaturali

• Italiano,inglese,francese,etc

• Unacaratteristicanegativa ditalilinguaggièlaloroinerenteambiguità• Unaqualsiasifrase formulataèpotenzialmentepolisemica• Ilsignificatochevienedatoallafrasedachiriceveilmessaggiopuòesserediversodaquellodatoglidalmittente

• Comprendereilsignificatodiunafraseinlinguaggionaturale èpiùsemplicesequestavienepronunciatainundatocontesto

Linguaggi,CodificaeRappresentazionedell’Informazione 10/109

ILinguaggiNaturali:Disambiguazione

• Comprendereilsignificatodiunafraseinlinguaggionaturaleèpiùsemplicesequestavienepronunciatainundatocontesto• ConcorsoIppico• CircoloScacchistico• Sartoria• Palestra

Linguaggi,CodificaeRappresentazionedell’Informazione 11/109

ILinguaggiNaturalinellaComunicazioneconiCalcolatori

• Percomunicareconunelaboratore,l’ambiguità deilinguagginaturalirappresentaungrossoproblema

• Bisognerebbefornireall’elaboratoreancheilcontestoelaconoscenza(leregole)perdisambiguarelefrasi• Larappresentazione(comprensibilealcalcolatore)dicontestoeregoleèmoltocomplicata

• Inalcunicasiladisambiguazioneèdifficileanchepergliuomini

• Ènecessariol’utilizzodeicosiddettiLinguaggiFormali

Linguaggi,CodificaeRappresentazionedell’Informazione 12/109

ILinguaggiFormali• Sviluppatiedimpiegatiintuttigliambitiincuiènecessarioevitarel’ambiguità• Informatica,matematica,logica,etc

• LadefinizionediunLinguaggioFormaleprevede• L’individuazionediunalfabeto,ovvero,diunelenco(finito)disimboli• Ladefinizionediunagrammaticaformale,ovverouninsiemediregolesintattichechespecificanocomeisimbolidell’alfabetopossonoesserecombinatitraloropercostituirelefrasibenformateall’internodellinguaggiostesso

• Inoltre,lesemanticheformaliconsentonodiattribuireunsignificatononambiguoallefrasiinunlinguaggioformale

Linguaggi,CodificaeRappresentazionedell’Informazione 13/109

UsareeProgrammareilcomputer

• IProgrammi(osoftware)risolvonoproblemispecificiconapprocciobasatosulleinformazionievengonoeseguitidaicomputer

Usare programmi realizzati da altri

Programmare

scrivere su Facebook

scrivere una relazione con Word

realizzareProgrammi complessi come ad es. Facebook

realizzarecontenuti didattici interattivi

realizzareProgrammi con Matlab

Linguaggi naturali

Linguaggi formali (di programmazione)

Numeri binari, codifica binaria dei caratteri, etc.

Linguaggi,CodificaeRappresentazionedell’Informazione 14/109

Rappresentazionedell’Informazione:AccordosuiSimboli

• L’informazioneèrappresentatadaidati,chealorovoltasonoespressiin formadisimboli

• Lastessainformazione puòesserecodificataconsimboliemodalitàdiverse• 1963->simboli“0”,“1”,“2”,…• MCMLXIII->simbolidellacodificaromana• Millenovecentosessantatre ->rappresentazionetestuale• …

Linguaggi,CodificaeRappresentazionedell’Informazione 15/109

Rappresentazionedell’informazioneneicalcolatori– 1/2

• Consideriamounalfabetoridottochecontienesoloisimboli“0”e“1”

• Unbit (contrazionedibinary digit)èunsimbolosceltosull’alfabeto{0,1}

• Neicalcolatoriognielemento (numeri,testo,audio,video,istruzioni,etc)vienerappresentato esclusivamenteconsequenzedibit

• Idati e leistruzioni vengonocodificati consequenzedibit

Linguaggi,CodificaeRappresentazionedell’Informazione 16/109

Rappresentazionedell’informazioneneicalcolatori– 2/2

• Pertrattare(memorizzare,elaborare,trasmettere,etc.)l’informazione,ilcalcolatore• Codifica l’informazionedisponibilescrivendosuunsupportofisico• Manipola ilsupportoconopportunetrasformazionifisiche,ottenendounaversionemodificatadelsupporto

• Decodifica l’informazionecorrispondentealrisultatodell’elaborazioneleggendodallaversionemodificatadelsupporto

Linguaggi,CodificaeRappresentazionedell’Informazione 17/109

CodificaBinaria• Alfabetobinario: usiamosoloduecifre0,1(bit)

• Problema: assegnareunasequenzadibitunivocaatuttiglioggettiinuninsiemepredefinito

• Quantioggettipossorappresentareconk bit?• 1bit=>2stati(0,1)=>2oggetti• 2bit =>4stati(00,01,10,11)=>4oggetti• 3bit =>8stati(000,001,…,111)=>8oggetti• …• k bit=>2k stati=>2k oggetti

• QuantibitmiservonopercodificareN oggetti?• N ≤ 2𝑘 =>k≥ 𝑙𝑜𝑔2𝑁 =>k= 𝑙𝑜𝑔2𝑁 (interosuperiore)

Linguaggi,CodificaeRappresentazionedell’Informazione 18/109

CombinazionidiBitBit a disposizione

Lecombinazioni Il numero di combinazioni

1 0, 1 2 =21

2 00, 01, 10,11 4 =22

3 000, 001, 010, 011, 100,101,110, 111

8 =23

4 0000, 0001, 0010, 0011,0100, 16 =24

0101, 0110, 0111,1000,1001,1010, 1011, 1100, 1101,1110,1111

5 00000, 00001, 00010,… 32 =25

… … …

Linguaggi,CodificaeRappresentazionedell’Informazione 19/109

UnPrimoEsempiodiCodifica:Interruttore

• Duesolepossibilità(stati)• Spento• Acceso

• L’informazionesullostatodell’interruttorecorrispondedunqueallasceltafraduesolealternative

Linguaggi,CodificaeRappresentazionedell’Informazione 20/109

UnPrimoEsempiodiCodifica:Interruttore

• 1bitrappresentalostatodell’interruttore• Interruttoreacceso:1• Interruttorespento:0

Linguaggi,CodificaeRappresentazionedell’Informazione 21/109

Codificadiun’InformazioneconPiùdiDueStati:IlSemaforo

Linguaggi,CodificaeRappresentazionedell’Informazione 22/109

DiverseCodificheperleStesseInformazioni

• Rappresentazionedeglistatidiunsemaforomediantebit

Stato Codifica

ROSSO 1 0 0

VERDE 001

GIALLO 0 1 0

Stato CodificaROSSO 0 0

VERDE 01

GIALLO 1 0

3 bit

2 bit

Linguaggi,CodificaeRappresentazionedell’Informazione 23/109

Codificadiun’InformazioneconPiùdiDueStati:GiornidellaSettimana

• Problema: assegnareuncodicebinariounivocoatuttiigiornidellasettimana

• Giornidellasettimana:N =7=>𝑘 ≥ 𝑙𝑜𝑔27 => 𝑘 = 3

• Con3bitpossiamoottenere8diversesequenze• Neservono7,qualiutilizziamo?• Qualeconfigurazioneassociamoaqualegiorno?

• Osservazione: quantodettofinoadoravalesottol’ipotesicheicodiciabbianotuttilastessalunghezza

Linguaggi,CodificaeRappresentazionedell’Informazione 24/109

IGiornidellaSettimanainBinario

Lunedì

Martedì

Mercoledì

Giovedì

Venerdì

Sabato

Domenica

000001010011100101

111110

Lunedì Martedì

Giovedì Mercoledì

Sabato Venerdì

Domenica

00

01

10

11

LunedìGiovedì

MartedìMercoledì

Sabato

Venerdì

Domenica

0

1

Lunedì

Sabato

Giovedì

Venerdì

Martedì

Domenica

Mercoledì

1 bit2 “gruppi”

2 bit4 “gruppi”

3 bit8 “gruppi”

Linguaggi,CodificaeRappresentazionedell’Informazione 25/109

IGiornidellaSettimanainBinario

Lunedì

Martedì

Mercoledì

Giovedì

Venerdì

Sabato

Domenica

000001010011100101

111110

Giovedì

Lunedì

Venerdì

MartedìSabato

MercoledìDomenica

00

01

10

11

Sabato

Giovedì

Martedì

DomenicaLunedì

Mercoledì

Venerdì

0

1

Lunedì

Sabato

Giovedì

Venerdì

Martedì

Domenica

Mercoledì

1 bit2 “gruppi”

2 bit4 “gruppi”

3 bit8 “gruppi”

Linguaggi,CodificaeRappresentazionedell’Informazione 26/109

CodificadeiCaratteri– 1/5• Problema: èpossibileapplicarequesteideeallarappresentazionediinformazionepiùcomplessa,adesempiodiuntesto?• Untestoèrappresentatoattraversounasuccessionedicaratteri• Ognicaratterevienesceltoall’internodiuninsiemefinitodisimboli(alfabeto)

Linguaggi,CodificaeRappresentazionedell’Informazione 27/109

CodificadeiCaratteri– 2/5• Con8bit,èpossibilerappresentarelasceltafra256alternativediverse(28=256)• Da00000000…a11111111• Passandopertuttelecombinazioniintermedie(00000001,00000010,…)

• Nelcasodeltesto,possiamofarcorrisponderediversecombinazionidi8bit(ottocellette,ciascunadellequalipuòcontenere0o1)acaratteridiversi

OgnisingoloCARATTEREvienecodificatoconunacombinazionedi8

bit

Linguaggi,CodificaeRappresentazionedell’Informazione 28/109

CodificadeiCaratteri– 3/5• Adesempio:

• 00000000->A• 00000001->B• 00000010->C• 00000011->D• 00000100->E

• ….ecosìvia

Linguaggi,CodificaeRappresentazionedell’Informazione 29/109

CodificadeiCaratteri– 4/5

Linguaggi,CodificaeRappresentazionedell’Informazione 30/109

• Sono stati proposti vari standard per lacodifica dei caratteri, tra cui il piùdiffuso è quello ASCII (AmericanStandard Code for InformationInterchange) del 1968, che con 7 bitcodifica un alfabeto di 128 caratteri.

•Lo standard che sta prendendo piede eche dovrebbe essere il successore diASCII è UTF-8 del 1992, codificaprincipale di Unicode per Internetsecondo il W3C.

CodificadeiCaratteri- 5/5• Soluzione: unaparola(opiùparole)saràrappresentatadalcomputercomeunasuccessionedigruppidi8bit

O G G I P I O V E01001111 01000111 01000111 01001001 00100000 01010000 01001001 01001111 01010110 01000101

Linguaggi,CodificaeRappresentazionedell’Informazione 31/109

LaCodificadeiNumeri• Obiettivo

• Codificainbinariodeinumeriperfavorirel’elaborazione dapartedeicalcolatori

• Vincoli• Codificaedecodificadevonoesseredefiniteinmanierataledapoteresserecompiuteinmanieraautomatica

• Problema• Deveesserepossibilecodificaretuttiinumeri

• 0,1,2,3,…• -1,-2,-3,…• -12.4,-2.004,0.56,134.89,…

• …insequenze• 0000000,000001,000010,…

Linguaggi,CodificaeRappresentazionedell’Informazione 32/109

NotazionePosizionale• Concettodibasedirappresentazione B

• Rappresentazionedelnumero comesequenzadisimboli,detticifre• AppartenentiadunalfabetocompostodaB simbolidistinti

• Ognisimbolorappresentaunvalorefra0eB-1

• Ilvalorediunnumerov espressoinquestanotazioneèricavabile• Apartiredalvalorerappresentatodaognisimbolo• Pesatoinbaseallaposizionecheoccupanellasequenza

Linguaggi,CodificaeRappresentazionedell’Informazione 33/109

ValorediunNumeroinNotazionePosizionale

• Formalmente,ilvalorediunnumerov espressoinquestanotazioneèdatodallaformula

• DoveB èlabase

• dk (0≤ 𝑘 ≤ 𝑛 − 1)sonolecifre(compresetra0e𝐁 − 1)

• Osservazione: unasequenzadicifrenonèinterpretabilesenonsiprecisalabaseincuièespressa

Linguaggi,CodificaeRappresentazionedell’Informazione 34/109

NotazionePosizionale• Unnumerov puòessererappresentatocome

v =dn *Bn-1 +dn-1 *Bn-2 +...+d2 *B1 +d1*B0

642può essere scritto come63 *102 + 42 *10+ 21

Bè labasedelnumero

nè il numerodicifre nel numero

dè lacifra allaiesima posizione nel numero

Linguaggi,CodificaeRappresentazionedell’Informazione 35/109

SistemidiNumerazionePosizionale

• Ilnostrosistemadinumerazione• Utilizzaunanotazioneposizionale edèinbase10• L’alfabetoutilizzatoèl’insiemedeisimboli{0,1,2,…,9}• Nonèl’unicosistemapossibile

• Essendoposizionale,ilvalorediuna“sequenza”disimbolivienecalcolataassegnandodei“pesi”adognisimboloasecondadellasuaposizione

452310 =4*103 + 5*102+2*101+ 3*100

migliaia cent inaia dec ine uni tà

3 2 1 0Posizion i

Stringa di simboli

Base

Linguaggi,CodificaeRappresentazionedell’Informazione 36/109

SistemidiNumerazionePosizionale

• 3251• 1 unità,5 decine,2 centinaia,3 unitàdimigliaia

• 745814763• 3 unità,6 decine,7 centinaia,4 unitàdimigliaia,1 decinadimigliaia,8centinaiadimigliaia,5 unitàdimilioni,4 decinedimilioni,7 centinaiadimilioni

Linguaggi,CodificaeRappresentazionedell’Informazione 37/109

SistemidiNumerazionepiùDiffusi

Sistema Base SimboliUsatodagliumani?

Usato daicomputer?

Decimale 10 0, 1, … 9 Si NoBinario 2 0, 1 No SiOttale 8 0, 1, … 7 No No

Esadecimale 16 0, 1, … 9,A, B, … F

No No

Linguaggi,CodificaeRappresentazionedell’Informazione 38/109

Esempio

2510 =110012 =318 =1916

Base

Linguaggi,CodificaeRappresentazionedell’Informazione 39/109

ConversionitraBasi(piùDiffuse)

• Lepossibilità

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 40/109

Dadecimaleadecimale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 41/109

DaDecimaleaDecimale

Linguaggi,CodificaeRappresentazionedell’Informazione 42/109

12510 => 5 x 100 = 5 +2 x 101 = 20 +1 x 102 = 100

125

Base

Peso

DaBinarioaDecimale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 43/109

DaBinarioaDecimale:Tecnica• Moltiplica ciascun bitper2n,doven è il “peso”delbit

• Ilpesoè dato dalla posizione delbit,apartire da0sulla destra

• Somma i risultati

Linguaggi,CodificaeRappresentazionedell’Informazione 44/109

DaBinarioaDecimale:Esempio

Linguaggi,CodificaeRappresentazionedell’Informazione 45/109

1010112 => 1 x 20 = 1 +1 x 21 = 2 +0 x 22 = 0 +1 x 23 = 8 +0 x 24 = 0 +1 x 25 = 32

4310

Bitinposizione “0”

DaBinarioaDecimale:Esempio

Linguaggi,CodificaeRappresentazionedell’Informazione 46/109

N2 = 101010

N10 = 1 x 25 + 0 x 24 + 1 x + 0 x 22 + 1 x + 0 x 20

= 32 + 8 + 2 = 42

N2 = 11011

N10 = 20 + 21 + 23 + 24 = 1 + 2 + 8 + 16 = 27

23 21

DaBinarioaDecimale:AltriEsempi

• 10011010 = 1*27 + 0*26 + 0*25 + 1*24 + 1*23 + 0*22 + 1*21 + 0*20

= 27 + 24 + 23 + 21

= 128 + 16 + 8 + 2= 154

• 00101001 = 0*27 + 0*26 + 1*25 + 0*24 + 1*23 + 0*22 + 0*21 + 1*20

= 25 + 23 + 20

= 32 + 8 + 1= 41

Linguaggi,CodificaeRappresentazionedell’Informazione 47/109

DaDecimaleaBinario

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 48/109

DaDecimaleaBinario:Tecnica• Dividiperdueetienitracciadelresto

• Ilprimoresto èilbitinposizione0 (LSB,least-significant bit)

• Ilsecondoresto èilbitinposizione1

• Ecosìvia…

Linguaggi,CodificaeRappresentazionedell’Informazione 49/109

DaDecimaleaBinario:Esempio

2 0 1

2 1 1

2 3 1

2 7 1

2 15 1

2 31 0

2 12562 1

12510 = 11111012

12510 = ?2

Linguaggi,CodificaeRappresentazionedell’Informazione 50/109

DaDecimaleaBinario:Esempio

N10 = 51(Da decimale a binario)

N2 = ???

511

225 2

1 12 20 6

0231

211

20N2 = 110011

51 = 1*25+1*24+0*23+0*22 +1*21+1*20

Linguaggi,CodificaeRappresentazionedell’Informazione 51/109

DaOttaleaDecimale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 52/109

DaOttaleaDecimale:Tecnica• Moltiplica ciascun bitper8n,doven è il “peso”delbit

• Ilpesoè dato dalla posizione delbit,apartire da0sulla destra

• Somma i risultati

Linguaggi,CodificaeRappresentazionedell’Informazione 53/109

DaOttaleaDecimale:Esempio

7248 =>4 x 80 = 4 +2 x 81 = 16 +7 x 82 = 448

46810

Linguaggi,CodificaeRappresentazionedell’Informazione 54/109

DaEsadecimaleaDecimale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 55/109

DaEsadecimaleaDecimale:Tecnica

• Moltiplica ciascun bitper16n,doven è il “peso”delbit• Ilpesoè dato dalla posizione delbit,apartire da0sulla destra

• Somma i risultati

Linguaggi,CodificaeRappresentazionedell’Informazione 56/109

DaEsadecimaleaDecimale:Esempio

ABC16 => C x 160 = 12 x 1 = 12 +B x 161 = 11 x 16 = 176 +A x 162 = 10 x 256 = 2560

274810

Linguaggi,CodificaeRappresentazionedell’Informazione 57/109

DaOttaleaBinario

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 58/109

DaOttaleaBinario:Tecnica• Convertiognicifraottaleinunarappresentazionebinariaequivalentea3-bit

Linguaggi,CodificaeRappresentazionedell’Informazione 59/109

DaOttaleaBinario:Esempio7058 = ?2

7 0 5

111 000 101

7058 = 1110001012

Linguaggi,CodificaeRappresentazionedell’Informazione 60/109

DaEsadecimaleaBinario

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 61/109

DaEsadecimaleaBinario:Tecnica

• Convertiognicifraesadecimaleinunarappresentazionebinariaequivalentea4bit

Linguaggi,CodificaeRappresentazionedell’Informazione 62/109

DaEsadecimaleaBinario:Esempio

10AF16 = ?2

1 0 A F

0001 0000 1010 1111

10AF16 = 00010000101011112

Linguaggi,CodificaeRappresentazionedell’Informazione 63/109

DaDecimaleaOttale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 64/109

DaDecimaleaOttale:Tecnica• Dividiper8

• Tienitracciadelresto

Linguaggi,CodificaeRappresentazionedell’Informazione 65/109

DaDecimaleaOttale:Esempio

8 1234154 2819 282 380 2

123410 = 23228

123410 = ?8

Linguaggi,CodificaeRappresentazionedell’Informazione 66/109

DaDecimaleadEsadecimale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 67/109

DaDecimaleadEsadecimale:Tecnica

• Dividiper16

• Tienitracciadelresto

Linguaggi,CodificaeRappresentazionedell’Informazione 68/109

DaDecimaleadEsadecimale:Esempio123410 = ?16

123410 = 4D216

16 123477 2164 13 = D160 4

Linguaggi,CodificaeRappresentazionedell’Informazione 69/109

DaBinarioadOttale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 70/109

DaBinarioadOttale• Raggruppaibitingruppiditre,partendodalladestra

• Convertiincifreottali

Linguaggi,CodificaeRappresentazionedell’Informazione 71/109

DaBinarioadOttale:Esempio10110101112 = ?8

1 011 010 111

1 3 2 7

10110101112 = 13278

Linguaggi,CodificaeRappresentazionedell’Informazione 72/109

DaBinarioadEsadecimale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 73/109

DaBinarioadEsadecimale:Tecnica

• Raggruppaibitingruppidiquattro,partendodalladestra

• Convertiincifreesadecimali

Linguaggi,CodificaeRappresentazionedell’Informazione 74/109

DaBinarioadEsadecimale:Esempio

10101110112 = ?16

10 1011 1011

2 B B

10101110112 = 2BB16

Linguaggi,CodificaeRappresentazionedell’Informazione 75/109

DaOttaleadEsadecimale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 76/109

DaOttaleadEsadecimale:Tecnica

• Idea: usarelacodificabinariacomerappresentazioneintermedia

Linguaggi,CodificaeRappresentazionedell’Informazione 77/109

DaOttaleadEsadecimale:Esempio

10768 = ?161 0 7 6

001 000 111 110

2 3 E

10768 = 23E16

Linguaggi,CodificaeRappresentazionedell’Informazione 78/109

DaEsadecimaleadOttale

Esadecimale

Decimale Ottale

Binario

Linguaggi,CodificaeRappresentazionedell’Informazione 79/109

DaEsadecimaleadOttale:Tecnica

• Idea: usarelacodificabinariacomerappresentazioneintermedia

Linguaggi,CodificaeRappresentazionedell’Informazione 80/109

DaEsadecimaleadOttale:Esempio

1F0C16 = ?8

1 F 0 C

0001 1111 0000 1100

1 7 4 1 4

1F0C16 = 174148

Linguaggi,CodificaeRappresentazionedell’Informazione 81/109

Piùingenerale…• Perconvertire unnumero binario inunsistema che hacomebase2z

• Raggruppare lecifre ingruppi diz elementi• Convertire separatamente ciascun gruppo

Linguaggi,CodificaeRappresentazionedell’Informazione 82/109

RappresentazionedegliInteri:“ModuloeSegno”

• N=0,+1,-1,+2,-2,+3,-3,…

• Come possiamo rappresentare ilsegno diun numero?

• Idea: Aggiungiamo un ulteriore bit che poniamo a• 1 seilnumeroè negativo• 0 altrimenti

N10 = +14

N10 = -14

Nms = 01110

Nms = 11110

Esempio

Linguaggi,CodificaeRappresentazionedell’Informazione 83/109

RappresentazionedegliInteri:“ModuloeSegno”

• Alfabetobinario• Ancheilsegnoèrappresentatoda0o1• Indispensabileindicareilnumerokdibitutilizzati

• Moduloesegno• 1bit disegno (0positivo,1negativo)• k-1 bit dimodulo

• Esempio:+610= 0110ms-610= 1110ms

• Sirappresentanoivalorida-2k-1+1a2k-1-1• Con4bit ivalorivannoda-7 a+7• Con8bit ivalorivannoda-127 a+127

• Osservazione: duerappresentazionidello0• Con4bit sono+010 =0000ms -010=1000ms

Linguaggi,CodificaeRappresentazionedell’Informazione 84/109

RappresentazionedegliInteri:“ModuloeSegno”:LimitisuiNumeriRappresentabili

• 4bit adisposizione• Possiamorappresentareda0000a0111eda1000a1111,indecimaleda0a7eda0a-7

• 5bit adisposizione• Possiamorappresentareda00000a01111eda10000a11111,indecimaleda0a15eda0a-15

•…

• Conkbit adisposizionepossiamorappresentarenumerida0a2k-1- 1 eda-(2k-1- 1)a0

Linguaggi,CodificaeRappresentazionedell’Informazione 85/109

NumeriInteriinComplementoaDue– 1/5

• Idea: l’interpretazioneposizionalevienemantenutaesimodificasoltantoilpesodelbitpiùsignificativo,invertendolo

• Caratteristiche• Lozerohaunarappresentazioneunica• Tuttiinumerichehannoilbitpiùsignificativougualea1sononegativi(comeprima)

• Èsemprenecessariospecificareilnumerodibitk chesivuoleutilizzareperrappresentareundeterminatonumero

• Sirappresentanoivalorida−2k−1 a+2k−1−1• Con4bit ivalorivannoda−8 a+7• Con8bit ivalorivannoda−128 a+127

Linguaggi,CodificaeRappresentazionedell’Informazione 86/109

NumeriInteriinComplementoaDue– 2/5

• Consideriamoungenericonumerobinariosu8bit

• Perstabilirelacodificadiungenericonumeronegativon <0,sapendochenecessariamenteilbitpiùsignificativovapostoa1,èsufficienteriportareneirestantibitilnumeropositivoche,sommatoa−27,dailvaloren

• Peresempio,proviamoacodificare−37.Essendounnumeronegativo,ilbitpiùsignificativovale1:

• Nellaparterestantedellatabelladovremoinserirequelnumerochesommatoa−128 da−37• −128+x=−37=>x=128– 37=91

−27 26 25 24 23 22 21 20

1 ? ? ? ? ? ? ?

Linguaggi,CodificaeRappresentazionedell’Informazione 87/109

NumeriInteriinComplementoaDue– 3/5

• Lacodificabinariadi91 è1011011,cheriportatonellatabellaprecedenteforniscelacodificadesiderata:

−27 26 25 24 23 22 21 20

1 1 0 1 1 0 1 1

Linguaggi,CodificaeRappresentazionedell’Informazione 88/109

NumeriInteriinComplementoaDue– 4/5

• Unmetodomoltocomodopercalcolarelarappresentazionedi−X apartiredaquelladi+Xèilseguente• Idea: effettuareilcomplementodiognibitdiX,poiaggiungere11. Codificabinariadi+610 =>01102 (N.B.civogliono4bit)2. Complementodituttiibit=>1001C2 (corrisponderebbea−710)3. Aggiungere1=>1010C2 (checorrispondea−610)

Linguaggi,CodificaeRappresentazionedell’Informazione

1+1=0colriportodi1

−23+21 =−8+2=−6

Ilcomplementodi1è0Ilcomplementodi0è1

1001+1=

1010

89/109

NumeriInteriinComplementoaDue– 5/5

• Estensionedel“segno”• Ivaloripositiviinizianocon0,quellinegativicon1• Datalarappresentazionediunnumerosukbit,larappresentazionedellostessonumerosuk+1bitsiottieneaggiungendo(asinistra)unbitugualealprimo

• Esempi• Rappresentazionedi-6su4bit=1010• Rappresentazionedi-6su5bit=11010• Rappresentazionedi-6su8bit=11111010

Linguaggi,CodificaeRappresentazionedell’Informazione 90/109

Codificadeirealiedeifrazionari(1/6)

• Rappresentazionemedianteinteri• L’insieme degli interi X può essere adoperato per rappresentare i reali xcompresi nel medesi intervallo, approssimando il reale all’intero piùprossimo.

X=r(x)=x± 𝜀 ∶ 0 ≤ 𝜀 ≤12

• Rappresentazionedeifrazionari• Unnumerofrazionariorappresentaunaclassedirealiinmodulominoredi1,eperessinonèsignificativalarappresentazionemedianteinteri.

• Siapplicaunfattorediscala𝑀 = 𝑏G,conn ilnumerodicifreeblabasedirappresentazione.Pertantolarappresentazionedifrazionarinonnegativimedianteinteridiventa:

𝑋 = 𝑥 J 𝑀 ± 𝜀 ∶ 𝑥𝜖 0,1 , |𝜀| ≤ NOP

Q• Esempio:0,500conM=103 vienerappresentatocome500,e0,499diventa499.

Linguaggi,CodificaeRappresentazionedell’Informazione 90/109

Codificadeirealiedeifrazionari(2/6)

• Conversionedeinumerifrazionari• MOLTIPLICHIAMO la parte frazionaria del numero dato per 2;• continuiamo a moltiplicare il RISULTATO ottenuto per 2 tenendo presenteche, se il numero ottenuto è maggiore di 1 sottraiamo 1;

• andiamo avanti fino a quando• non otteniamo un RISULTATO uguale a UNO oppure• fino a quando otteniamo un RISULTATO GIA' OTTENUTO IN PRECEDENZA.

Linguaggi,CodificaeRappresentazionedell’Informazione 90/109

Codificadeirealiedeifrazionari(3/6)

• Virgolafissaemobile• Dicesi in virgola fissa una rappresentazione dei numeri con n cifre, in cui laposizione della virgola è predeterminata e non va esplicitamente espressa.

• Esempio: il numero .789x10-1 è rappresentato come 078900 in unarappresentazione a 6 cifre.

• Dicesi in virgola mobile (o floating point) una rappresentazione in cui unnumero reale è indicato dalla coppia (M,E), dove il primo termine prende ilnome di mantissa e il secondo di esponente o caratteristica:

x = 𝑀 J 𝑏S ± 𝜀• M ed E possono essere rappresentati in modi diversi.• Se b|M|<1, allora esiste un’altra rappresentazione (bM, E-1) che consente diottenere una migliore approssimazione. Tra le possibili coppie cherappresentano x bisogna scegliere quella con l’approssimazione più alta,detta normalizzata, ovvero quando 𝑏TU ≤ 𝑀 < 1.

Linguaggi,CodificaeRappresentazionedell’Informazione 90/109

Codificadeirealiedeifrazionari(4/6)

• Aritmeticainvirgolamobile• Data una coppia (M,E) si può effettuare uno shift a destra della mantissa edincremento dell’esponente, sempre che E+1 sia rappresentabile:

Float shift right:𝑀W J 𝑏SX = 𝑀 J 𝑏S = YNJ 𝑏SZU

• Uno shift a sinistra avviene come segue:Float shift left:𝑀W J 𝑏SX = 𝑀 J 𝑏S = (𝑀𝑏) J 𝑏STU

• L’aritmetica in virgola mobile effettua le operazioni operando separatamentesu mantissa ed esponente ed effettuando ove necessario operazioni di shift.• Addizione – Dati due numeri (A, Ea) e (B, Eb), se Ea è maggiore di Eb si effettua loshift a destra fino ad ottenere Ea = Eb, altrimenti quello a sinistra. Successivamente,si sommano le mantisse.Esempio: Sommiamo A = (123 ×100) e B = (456 ×10-2), effettuiamo due shift adestra su B fino ad ottenere B = (4,56 ×100), sommiamo le mantisse e il risultato èC = (127,56 ×100).

• Moltiplicazione – Prodotto delle mantisse e somma degli esponenti con eventualenormalizzazione.

Linguaggi,CodificaeRappresentazionedell’Informazione 90/109

Codificadeirealiedeifrazionari(5/6)

• StandardIEEE754• Per la rappresentazione dei numeri reali in macchina si adopera quella dellavirgola mobile binaria, come specificato nello standard IEEE 754. Per b=2,tale rappresentazione è la seguente:

x = (−1)[J 𝑀 J 2S

• Essendo M normalizzata, ha il primo bit uguale a 1, ciò consente di ometterlo, così daavere un bit in più per la rappresentazione del numero. Questa tecnica prende il nomedi bit nascosto:

seM = UZ]Q, sihachex = (−1)[J (1 + 𝑓) J 2STU

• così che la rappresentazione è data dalla tripla (s, f, E).

• Per l’esponente si ha la rappresentazione polarizzata: dato il numero di bit Ne, el’esponente da rappresentare, E quello rappresentato e bias la costante dipolarizzazione si ha E = e + bias, con l’intervallo degli esponenti effettivi pari a 𝑒abG ≤𝑒 ≤ 𝑒acd.

Linguaggi,CodificaeRappresentazionedell’Informazione 90/109

Codificadeirealiedeifrazionari(6/6)

• Lo standard presenta vari formati di rappresentazione, tra i quali abbiamo quello a singolaprecisione su 32 bit e quella a doppia precisione su 64 bit. Nel primo caso, dati gli 8 bit perla rappresentazione dell’esponente, si ha che il suo intervallo di rappresentazione è pari a0 < e < 255. Pertanto la formula di rappresentazione diventa:

x = (−1)[J 2 eTUQf J (1 + 𝑓)Y

con f pari alla parte frazionaria della mantissa, rappresentata con la tecnica del bitnascosto:

Linguaggi,CodificaeRappresentazionedell’Informazione 90/109

Esercizi1• Scrivereinbinariosempliceiseguentinumeriinbase10

• 5310• 21110

• Scrivereinbinariosemplicesu7bitilnumero1310• Scrivereinmoduloesegnosu7bitilnumero1310• Scrivereinmoduloesegnosu7bitilnumero-1310• Scrivereinmoduloesegnosu5bitilnumero1710

Linguaggi,CodificaeRappresentazionedell’Informazione 97/109

SoluzioneEsercizi• Scrivereinbinariosemplicesu7bitilnumero1310

• 0001101

• Scrivereinmoduloesegnosu7bitilnumero1310• 0001101

• Scrivereinmoduloesegnosu7bitilnumero-1310• 1001101

• Scrivereinmoduloesegnosu5bitilnumero1710• 10001,Inmoduloesegnoè-110• RISPOSTA:Nonèpossibile.Hobisognodialmeno6bit(010001)

Linguaggi,CodificaeRappresentazionedell’Informazione 98/109

Esercizisvolti• 53=32+16+4+1

=25 +24 +22 +20=1*25 +1*24 +0*23 +1*22 +0*21 +1*20=110101inbinario

• 211=128+64+16+2+1=27 +26 +24 +21 +20=1*27 +1*26 +0*25 +1*24 +0*23 +0*22 +1*21 +1*20

=11010011inbinario

Linguaggi,CodificaeRappresentazionedell’Informazione 99/109

Esercizi2• Scrivereinbinariosemplicesu7bitilnumero1110• Scrivereinmoduloesegnosu8bitilnumero2510• Scrivereinmoduloesegnosu7bitilnumero-1210• Scrivereinmoduloesegnosu5bitilnumero2010

Linguaggi,CodificaeRappresentazionedell’Informazione 100/109

Esercizi3• UnnumerorealeèrappresentatoinvirgolamobilesecondolostandardIEEE754su32bitnelseguentemodo:

s =1E =10000111f =11011000000000000000000

•Ricavareilcorrispondentevaloredecimale.

•Convertire i seguenti numeri decimali in virgola mobile in singolaprecisione secondo lo standard IEEE 754:1. −23.375102. −127.25103. +131.5104. −300.25105. −3.610

Linguaggi,CodificaeRappresentazionedell’Informazione 101/109

EserciziSvolti• Dato che e = 100001112 = 13510.Si ha N=(−1)s·2(e−127)·1.f==−1·2135−127·1.11011 =−1·28·1.11011=−1110110002=−(28+27+26+24++23)10=−47210

Linguaggi,CodificaeRappresentazionedell’Informazione 102/109

EserciziSvolti• Dato che e = 100001112 = 13510.Si ha N=(−1)s·2(e−127)·1.f==−1·2135−127·1.11011 =−1·28·1.11011=−1110110002=−(28+27+26+24++23)10=−47210

• N10=−23.37510=−10111.0112=

Linguaggi,CodificaeRappresentazionedell’Informazione 103/109

EserciziSvolti• Dato che e = 100001112 = 13510.Si ha N=(−1)s·2(e−127)·1.f==−1·2135−127·1.11011 =−1·28·1.11011=−1110110002=−(28+27+26+24++23)10=−47210

• N10=−23.37510=−10111.0112=-(24+22+21+20+2-2+2-3)10=

=-(16+4+2+1+0.25+0.125)10=-23.37510

Linguaggi,CodificaeRappresentazionedell’Informazione 104/109

2021

22

23

24

2-12-22-3

EserciziSvolti• Dato che e = 100001112 = 13510.Si ha N=(−1)s·2(e−127)·1.f==−1·2135−127·1.11011 =−1·28·1.11011=−1110110002=−(28+27+26+24++23)10=−47210

• N10=−23.37510=−10111.0112=−1.01110112·24

s=−=1,e=4,er=4+127=13110=100000112m=1.0111011=0111011(con hidden bit).

• N10=131.510=10000011.12=1.000001112·27

s=+=0,e=7,er=127+7=134=100001102m=1.00000111=00000111(comhidden bit).

Linguaggi,CodificaeRappresentazionedell’Informazione 105/109

Indovinello:comecontaET?• UnExtra-TerrestrevienesullaTerraecidicecheirediRomasono13.Quanteditahal’Extra-Terrestre?• Il13deveessereinterpretatocomeunastringadisimboli• Nonconosciamolabasedellaloronumerazione• SappiamocheillorosistemadinumerazioneèPOSIZIONALE• SappiamocheindecimaleirediRomasono7

• EsedicessecheirediRomasono111?

Linguaggi,CodificaeRappresentazionedell’Informazione 106/109

Indovinello:comecontaET?• UnExtra-TerrestrevienesullaTerraecidicecheirediRomasono13.Quanteditahal’Extra-Terrestre?• Il13deveessereinterpretatocomeunastringadisimboli• Nonconosciamolabasedellaloronumerazione• SappiamocheillorosistemadinumerazioneèPOSIZIONALE• SappiamocheindecimaleirediRomasono7

13x = 1 * X1 + 3 * X0 = X + 3 = 710

Þ X = 7 – 3 = 4ÞL’Extra-Terrestre conta in base 4 per cui (sfruttando l’esperienza del sistema decimale) possiamo dire che ha 4 dita (2 per mano)ÞL’Extra-Terrestre usa l’alfabeto {0, 1, 2, 3}

Linguaggi,CodificaeRappresentazionedell’Informazione 107/109

Esercizisusistemidinumerazioneposizionale

• IrediRomasono710• Base10,simboli{0,…,9}

• IrediRomasono134• Base4,simboli{0,1,2,3}

• IrediRomasono1112• Base2,simboli{0,1}

134 = 1 * 41 + 3 * 40 = 710

1112 = 1 * 22 + 1 * 21 + 1 * 20= 710

710 = 7 * 100 = 710

Linguaggi,CodificaeRappresentazionedell’Informazione 108/109

Riferimenti• Libroditesto

• Capitolo2

Linguaggi,CodificaeRappresentazionedell’Informazione 109/109