02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati •...

27
1 Parte 2 Software Considerazione... Se l’utente inserisce dati e ottiene risultati significa che aveva un problema che qualcuno ha risolto per lui Chi ha risolto il problema? Informatica - A.A. 2010/2011 - Software 2.1 Il computer? NO!

Transcript of 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati •...

Page 1: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

1

Parte 2

Software

Considerazione...

• Se l’utente inserisce dati e ottiene risultati significa che aveva un problema che qualcuno ha risolto per lui

• Chi ha risolto il problema?

Informatica - A.A. 2010/2011 - Software 2.1

Il computer? NO!

Page 2: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

2

…quindi…

• Il problema è stato risolto da un essere umanoche:– ha trovato la soluzione– ha “spiegato” la soluzione al computer

• Il computer ha poi eseguito la soluzione in modo eccezionalmente veloce (se confrontatoalla velocità umana)

���� Il computer non risolve problemi, ma eseguevelocemente le soluzioni che ha trovatol’uomo

Informatica - A.A. 2010/2011 - Software 2.2

Informatica - A.A. 2010/2011 - Software 2.3

Algoritmi: come “trovare” soluzioni

• Algoritmo ���� Sequenza finita di mosse che risolve in un tempo finito un problema (o una classe di problemi)

– E’ un metodo sistematico per risolvere un problema. Es.♦ lo svolgimento di operazioni aritmetiche♦ il processo di spedizione di una cartolina♦ la ricerca di un numero telefonico♦ il metodo per determinare quando il puntatore del mouse clicca su

un pulsante virtuale

♦ …

– Gli algoritmi devono essere non ambigui , essere costituiti da un insieme finito di passi e terminare in un tempo finito

– E’ l’uomo che risolve problemi (inventa algoritmi)

Page 3: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

3

Informatica - A.A. 2010/2011 - Software 2.4

Programmi: come “spiegare” al computer le soluzioni trovate

• “Traduzione” di un algoritmo attraverso un insieme ordinato di frasi (“istruzioni”), descritte in un linguaggio di programmazione , che specificano le azioni da compiere in modo formale che sia interpretabile dal computer, il tutto allo scopo di risolvere un problema

• L’azione di scrittura di programmi prende il nome diPROGRAMMAZIONE, CODIFICA o IMPLEMENTAZIONE

• Quindi un PROGRAMMA è un testo scritto secondo la sintassi (alfabeto+regole grammaticali) e la semantica(significato da dare alle frasi) di un linguaggio d i programmazione

Elaborazione delle soluzioni: ciclo Fetch-Decode-Execute

• L’esecuzione di ciascuna istruzione da parte della CPU consta dei seguenti passi:1. Legge una istruzione dalla memoria centrale

(Fetch)2. Si predispone alla lettura della prossima istruzione3. Decodifica l’istruzione (Decode)4. Legge dalla memoria gli eventuali parametri

(operandi) dell’istruzione5. Esegue l’istruzione (Execute)6. Torna al passo 1 per l’esecuzione dell’istruzione

successiva

Informatica - A.A. 2010/2011 - Software 2.5

Page 4: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

4

Informatica - A.A. 2010/2011 - Software 2.6

Algoritmi e programmi sono diversi

• La programmazione consiste nello scrivere i passi di un algoritmo in uno specifico linguaggio ( es., Java, C, Fortran, …)

• Esecuzione di un programma– per avviare un programma solitamente si può “cliccare”

sulla sua icona (ad es., Word, Explorer, Firefox) – SI dice al computer di caricare il programma in memoria

principale e di far eseguire il programma dalla CPU

Informatica - A.A. 2010/2011 - Software 2.7

Cos’è il software?

• “Il Software è un insieme di programmi che permettono ad un calcolatore di eseguire determinate funzionali tà”

• Un PROGRAMMA è un’entità statica (descritta in un dato LINGUAGGIO) che specifica:– l’insieme di istruzioni che il calcolatore deve eseguire– la sequenza in cui devono essere eseguite

• Nel momento in cui un PROGRAMMA VIENE MANDATO IN ESECUZIONE, si ha l’attivazione di un PROCESSO

• Il processo è l'entità utilizzata dal sistema operativo per rappresentare una specifica esecuzione di un programma. E’ quindi un'entità dinamica , che dipende dai dati che vengono elaborati, e dalle operazioni eseguite su di essi.

Page 5: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

5

Informatica - A.A. 2010/2011 - Software 2.8

I ruoli

ProgrammaFormulazionedi un problema

Individuazionedi un algoritmo

Metodo risolutivo(progetto)

Linguaggio diProgrammazione

(codifica)

(ese

cuzi

one)

DATI

INFORMATICO(Sviluppo applicazioni)

UTENTE

INFORMATICO(Tecnico)

Sinonimi comunemente adottati

• Programmi• Applicazioni• Servizi software

• Anche se non sono proprio sinonimi, nell’uso comune sono considerati come tali

• Hanno, in effetti, la comune caratteristica di essere implementazioni di algoritmi per computer

Informatica - A.A. 2010/2011 - Software 2.9

Page 6: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

6

Informatica - A.A. 2010/2011 - Software 2.10

Esecuzione di un programma

• L'esecuzione delle azioni nell'ordine specificato dall'algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema

Computer

INPUT

DATI

OUTPUT

RISULTATI

Hardware

Sistema Operativo

Applicazioni

UTENTE

Principali componenti software

• Due grandi famiglie di software– Software di sistema: Sistema operativo– Software applicativo: Applicazioni

Informatica - A.A. 2010/2011 - Software 2.11

Page 7: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

7

Informatica - A.A. 2010/2011 - Software 2.12

Motivazioni

• Qual è l’obiettivo di un sistema costituito da diversi “strati” ( hardware , software di sistema , software applicativo ) ben definiti e separati?

Avere un sistema a livelli , dove lo stratosuperiore mascheri quello inferiore

Perché? Qual è il vantaggio?

Informatica - A.A. 2010/2011 - Software 2.13

Perché costruire un “sistema a livelli”?

Quindi, un sistema a livelli (“modulare” ) consente ai progettistidi semplificare la soluzione del problema complesso di progettare,realizzare e successivamente modificare un sistema in formatico erenderlo facilmente utilizzabile da chiunque (o quasi …)

“Virtualizzazione” ���� far apparire la realtà in modo diverso(tipicamente più semplice e/o più gradevole )

OBIETTIVO RIVOLTO AGLI “UTILIZZATORI”

L’hardware ha molte virtù (veloce, miniaturizzato), m a nonè né semplice né gradevole! Quindi farlo risultare tale è unproblema molto complesso per i progettisti informat ici

Page 8: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

8

Informatica - A.A. 2010/2011 - Software 2.14

Componenti di un Sistema di Elaborazione + Utente

APPLICAZIONI

Sistema Operativo

ControllerSCSI

ControllerKeyboard

ControllerMouse

ControllerPCI Bus

ControllerFloppy

ControllerATAPI

SCSI Bus Tastiera Mouse PCI Bus Floppy CD-ROM

Sof

twar

eH

ardw

are

?

UTENTE…

Informatica - A.A. 2010/2011 - Software 2.15

NOTA

• Sono stati introdotti 4 termini importanti (e non banali):– Software– Programma– Linguaggio (di programmazione )

♦ Ne esistono tantissimi. Alcuni noti linguaggi di al to livello: C, Java, Fortran. [NO, NO, NO: HTML!! !]

– Processo

Page 9: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

9

Informatica - A.A. 2010/2011 - Software 2.16

Quanti sono gli applicativi software?

• Esistono tantissimi tipi di software– per calcolo scientifico– per videoscrittura– per memorizzazione e recupero dati– per comunicazione– per svago– …

• Per ogni tipo di software, esistono innumerevoli applicativi software prodotti da “fonti” molto varie– Multinazionali del software: IBM, Microsoft, EDS, …– Grandi software house– Gruppi di sviluppatori “free software”– Gruppi di ricerca per prototipi– Singole persone (per interesse o svago personale)– …

Informatica - A.A. 2010/2011 - Software 2.17

Esempi

• Software per l’elaborazione testi– creazione, modifica e stampa di un documento: Word, Editor,

OpenOffice, Latex

• Foglio elettronico

– tabella di valori disposti in righe e colonne: Excel, Lotus, …

• Software per Database

– sistema per l’archiviazione ed il recupero efficiente di dati in formato digitale: Access, Oracle, MySQL, …

• Software per presentazioni

– creazione di testi/immagini per la creazione di diapositive e prospetti: PowerPoint, Acrobat, …

Page 10: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

10

Informatica - A.A. 2010/2011 - Software 2.18

Esempi (cont.)

• Software per la comunicazione– creazione, invio e ricezione di posta elettronica: Outlook,

Eudora, Pine, ...– Navigazione su Web: Explorer, Firefox, …

• Software per il calcolo

– Simbolico e/o numerico: MatLab, …

• Software di utilità

– Antivirus, antispyware, …

• Cos’è un virus informatico?

E’ parte del software anche lui…

Informatica - A.A. 2010/2011 - Software

La rappresentazionedelle informazioni

2.19

Page 11: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

11

Informatica - A.A. 2010/2011 - Software

Scelta della rappresentazione

• Di solito è una scelta convenzionale

• A volte ci sono vincoli da rispettare

• Nel caso dei computer il vincolo è la rappresentazione binaria (o digitale) di tutte le informazioni (testo, immagini, video, suoni, ...)

• L’alfabeto di base con cui il computer codifica ogni informazione consiste di due soli simboli: “0” e “1”

2.20

Codifica di tutta l’informazione su computer

• I programmi operano su dati

• Sia i dati sia i programmi devono risiedere in memoria centrale (RAM) per poter essere eseguiti

• Sia i dati sia i programmi sono codificati in modo opportuno per il computer

• CODIFICA BINARIA: insiemi di 0 e 1

Informatica - A.A. 2010/2011 - Software 2.21

Page 12: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

12

Esempi di segnali binari

Informatica - A.A. 2010/2011 - Software 2.22

contatto:aperto/chiuso

lampadina:accesa/spenta

corrente elettrica:presente/assente

tensione elettrica:High/Low

levetta:alta/bassa

cristallo liquido:trasparente/opaco

Motivo della scelta di solo 2 simboli

• Corrispondenza col mondo reale: i due simboli possono corrispore, ad esempio– al passaggio/non passaggio di corrente

attraverso un cavo conduttore– ai due diversi stati di polarizzazione di una

sostanza magnetizzabile– ai due stati di carica elettrica di una sostanza– al passaggio/non passaggio di luce attraverso

un cavo in fibra ottica• Ragioni prevalentemente di tipo tecnologico

Informatica - A.A. 2010/2011 - Software 2.23

Page 13: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

13

Informatica - A.A. 2010/2011 - Software

Bit

• L'entità minima di informazione in un calcolatore si chiama bit (binary digit – cifra binaria)– Può assumere solo due valori, cioè può

permettere la rappresentazione di due informazioni associate ad uno dei due stati “0” e “1”

• Per poter rappresentare più informazioni devo usare più bit mettendoli in sequenza

2.24

Informatica - A.A. 2010/2011 - Software

Esempio: sequenza di due bit

• Con 2 bit possiamo rappresentare quattro configurazioni (2 2):00 01 10 11

• E’ possibile far corrispondere quattro informazioni a tante cose. Es.,– le prime quattro lettere dell'alfabeto– oppure i numeri da 1 a 4– oppure i colori, oppure altre cose ...

00 � a 1 verde01 � b 2 rosso10 � c 3 giallo11 � d 4 blu

2.25

Page 14: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

14

Informatica - A.A. 2010/2011 - Software

Codifica dell’informazione

• Processo secondo cui si fa corrispondere ad un’informazione una configurazione di cifre binarie

• E’ importante ricordare quante informazioni riesco a codificare avendo un certo numero di bit:– Con 1 bit codifico 2 informazioni– Con 2 bit ne codifico 4– Con 3 bit ne codifico 8– ...– Con n bit codifico 2 n informazioni

2.26

Informatica - A.A. 2010/2011 - Software

• In informatica assume particolare importanza un’aggregazione di 8 bit, che prende il nome di byte

• Simbologia: b bit B byte

• Poiché un byte è fatto di 8 bit� un byte consente di codificare 256 informazioni

(ad esempio, tutti i 111 elementi della tavola periodica)

Byte

2.27

Page 15: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

15

Informatica - A.A. 2010/2011 - Software

Unità di misura

• Multipli di bit o di byte1 KiloByte = 1.024 ~ 10 3 byte x1024 = 1 MegaByte = 1.048.576 ~ 10 6 byte x1024 = 1 GigaByte = 1.073.741.824 ~ 10 9 bytex1024 = 1 TeraByte = 1.099.511.627.776 ~ 10 12 byte x1024 = 1 PetaByte = circa un biliardo ~ 10 15 byte

• AbbreviazioniKb = Kilobit KB = KiloByteMb = Megabit MB = MegaByteGb = Gigabit GB = GigaByte

(per banda di rete) (per memoria del computer)

2.28

Informatica - A.A. 2010/2011 - Software

Codifica dei caratteri alfanumerici

• L'insieme dei caratteri alfabetici (anglosassoni), numerici, di punteggiatura, le parentesi e gli operatori aritmetici può essere codificato usando 7 bit (128 configurazioni)

• Per poter interagire e scambiarsi dati in modo comprensibile, è necessario usare la stessa codifica

• Quindi, è necessario “mettersi d’accordo” per definire un metodo standard per effettuare la codifica

2.29

Page 16: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

16

Informatica - A.A. 2010/2011 - Software

Codice ASCII

• E’ il metodo di codifica più diffuso fra produttori di hardware, software e dispositivi di rete

• ASCII = American Standard Code for Information Interchange

• Nota: non è l'unico!• Abbastanza diffuso anche EBCDIC = Extended

Binary Coded Decimal Interchange Code• Un codice “completo” (perché rappresenta

caratteri dalle lingue di tutto il mondo) è UNICODE, a 16 bit

2.30

Informatica - A.A. 2010/2011 - Software

Esempio di codifica ASCII standard (usa 7 bit)

• 0100001 !• 0100110 &• 0110000 0• 0111110 >• 1000001 A• 1100001 a

• I numeri, così come le lettere, sono consecutiviSono però insiemi separati

2.31

Page 17: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

17

Informatica - A.A. 2010/2011 - Software

Codice ASCII standard – 7 bit 000 001 010 011 100 101 110 111

0000 NUL DLE 0 @ P ° p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 “ 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f v 0111 BEL ETB ‘ 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L \ l | 1101 CR GS - = M ] m } 1110 SO RS . > N ^ n ~ 1111 SI US / ? O _ o DEL

Per ottenere la codifica a 7 bit, si legge prima il numero della colonna e poi quello di riga

2.32

Informatica - A.A. 2010/2011 - Software

Codifica di una parola

• Parola = sequenza di caratteri• Codifica della parola = sequenza delle codifiche

dei singoli caratteri• ES: parola “cane”• c a n e• 01100011 01100001 01101110 01100101• Esistono anche simboli per lo spazio bianco, il

simbolo di fine riga, ...• Si possono rappresentare testi complessi

2.33

Page 18: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

18

Informatica - A.A. 2010/2011 - Software

Codifica dei numeri

• Col codice ASCII posso codificare anche le cifre decimali da “0” a “9”

• Parola = sequenza di caratteri• Numero = sequenza di cifre

• Es: 324 si potrebbe rappresentare come• 00110011 00110010 00110100

3 2 4

2.34

Informatica - A.A. 2010/2011 - Software

Codifica dei numeri - continua

• Ma usare la codifica ASCII per i numeri è una rappresentazione non efficiente perché i primi quattro bit sono uguali e, soprattutto, non è adatta per eseguire le operazioni aritmetiche sui numeri

• Esiste un modo molto più naturale per codificare i numeri che prende spunto dal sistema di numerazione tradizionale, che è un sistema decimale e posizionale

2.35

Page 19: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

19

Informatica - A.A. 2010/2011 - Software

Sistema di numerazione: decimale e posizionale

• Usa 10 cifre [0..9]• Ogni cifra ha un valore che dipende dalla

posizione che occupa all’interno del numero• La rappresentazione “645” (la cifra 6 seguita

dalla cifra 4 seguita dalla cifra 5) denota, nel sistema decimale, il numero 645

• Il numero 645 ha in realtà l’interpretazione seguente:– 6 centinaia, 4 decine, 5 unità– 6*(102) + 4*(101) + 5*(100) = 600+40+5 = 645

2.36

Informatica - A.A. 2010/2011 - Software

Il numero 135 decimale può essere rappresentato come segue:

B = 10 base n = 3 numero cifre

cifra 1 3 5

posizione 2 1 0 (ricordare che si parte da 0)

peso 10 2 10 1 10 0

1 • 10 2 + 3 • 101 + 5 •100 = 135

Esempio: sistema decimale

2.37

Page 20: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

20

Informatica - A.A. 2010/2011 - Software

Sistema di numerazione decimale

• In generale la rappresentazione:cncn-1...c1c0in cui ogni cifra c i è compresa fra 0 e 9, denota:

c0 * 100 + (ossia c 0 unità)c1 * 101 + (ossia c 1 decine)...cn-1 * 10n-1 + ...cn * 10n

2.38

Informatica - A.A. 2010/2011 - Software

Rappresentazione binaria

• E’ una codifica “posizionale” che invece di usare 10 cifre, ne usa solo 2

• Quindi, tutti i numeri vengono codificati usando le due cifre “0” e “1” e uno schema posizionale in cui si usa la base 2 invece della base 10

• cncn-1...c1c0 in cui ogni cifra c i vale 0 o 1, denota:c0 * 20+c1 * 21+...+cn-1 * 2n-1+cn * 2n

• Esempio: 1110 (base 2) denota:1*23+1*22 +1*21+0*20+= 8+4+2+0 = 14 (base 10)

2.39

Page 21: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

21

Informatica - A.A. 2010/2011 - Software

Valore decimale corrispondente al numero binario 1101 ?

cifra 2 1 1 0 1

peso 23 22 21 20

valore 1•8 1•4 0•2 1•1

Esempio: Sistema binario

11012 = 1 • 23 + 1 • 22 + 0 • 21 + 1 • 20 = 1310

2.40

Da base decimale a binaria: numeri interi

• Per ottenere il valore binario di un numero intero codificato nel sistema decimale si procede utilizzando un metodo iterativo di successive divisioni per 2

• Il resto delle divisioni fornisce le cifre del numero binario (a partire dalla meno significativa)

Informatica - A.A. 2010/2011 - Software 2.41

26 2

13 0

2

6 1

2

3 0

2

1 1

Cifra a destra (meno significativa)

Cifra a sinistra (più significativa)

(26) 10 = (11010)

2

2610

Page 22: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

22

Informatica - A.A. 2010/2011 - Software

Massimo numero rappresentabile?

• Sappiamo che con quattro cifre decimali è possibile rappresentare tutti i numeri fra 0 e 9999 in quanto il numero successivo (10000) richiederebbe una quinta cifra (non disponibile)

• In informatica si parla di overflow: quando un numero “esce” dal numero di cifre destinate alla rappresentazione

• Date n cifre decimali, è possibile rappresentare i numeri da 0 a 10 n-1Esempio ( n=4): 9999 = 10000-1 = 104-1

2.42

Informatica - A.A. 2010/2011 - Software

Massimo numero in binario

• Le stesse considerazioni del sistema decimale valgono anche per il sistema binario prendendo come base il numero 2 al posto del numero 10

• Quindi, date n cifre binarie, è possibile rappresentare i numeri da 0 a 2 n-1

• Ricordare: nel momento in cui si fissa il numero di bit destinati alla rappresentazione di un numero, si fissa anche il massimo numero rappresentabile

2.43

Page 23: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

23

Sistemi di numerazioni ottale ed esadecimale

• Quando per la rappresentazione di un numero si utilizzano molte cifre binarie può convenire usare altri sistemi di numerazione

• I sistemi ottale ed esadecimale sono utilizzati principalmente per rappresentare in modo più compatto i numeri binari

• I simboli del sistema Ottale sono 8: { 0, 1, 2, 3, 4, 5, 6, 7}

• I simboli del sistema Esadecimale sono 16: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }

• Si scelgono basi “potenza di 2” perché le regole di conversione da/a numero binario sono molto semplici ed efficienti

Informatica - A.A. 2010/2011 - Software 2.44

Corrispondenza ottale binaria

Tabella di conversione

[0]8 = [0000]2 [1]8 = [001]2 [2]8 = [010]2

[3]8 = [011]2 [4]8 = [100]2 [5]8 = [101]2

[6]8 = [110]2 [7]8 = [111]2

Per verificare la corrispondenza si può farriferimento al valore decimaleEs. [6] 8 = [6*80]10 = [6]10

[110]2 = [1*22+1*21+0*20] 10 = [6]10

Informatica - A.A. 2010/2011 - Software 2.45

Page 24: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

24

Conversioni di base

• Binario -> Ottale • Per passare dalla codifica Binaria a quella Ottale, si

raggruppano le cifre binarie a gruppi di 3 a partire da destra e le si sostituiscono con una cifra del sistema ottale (aggiungere 0 a sinistra se il numero di cifre binarie non è multiplo di 3)

• Esempio : 111 001 0102 = 7128

• Ottale -> Binario • Per passare dalla codifica Ottale a quella Binaria, si

sostituisce ad ogni cifra ottale la corrispondente codifica binaria (composta da 3 cifre).

• Esempio : 3028 = 011 000 0102

Informatica - A.A. 2010/2011 - Software 2.46

Corrispondenza esadecimale binaria

Tabella di conversione

[0]16 = [0000]2 [1]16 = [0001]2 [2]16 = [0010]2

[3]16 = [0011]2 [4]16 = [0100]2 [5]16 = [0101]2

[6]16 = [0110]2 [7]16 = [0111]2 [8]16 = [1000]2

[9]16 = [1001]2 [A] 16 = [1010]2 [B] 16 = [1011]2

[C]16 = [1100]2 [D]16 = [1101]2 [E]16 = [1110]2

[F]16 = [1111]2

Informatica - A.A. 2010/2011 - Software 2.47

Page 25: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

25

Conversioni di base (2)

• Binario -> Esadecimale • Per passare dal codice Binario a quello Esadecimale, si

raggruppano le cifre a gruppi di 4 a partire da destra e le si sostituiscono con una cifra del sistema esadecimale (aggiungere 0 a sinistra se il numero di cifre binarie non è multiplo di 3)

• Esempio: 1001 0001 11112 = 91F16

• Esadecimale -> Binario • Per passare dal codice Esadecimale a quello Binario, si

sostituisce ad ogni cifra esadecimale la corrispondente configurazione binaria (composta da 4 cifre).

• Esempio: A7F16 =1010 0111 11112

Informatica - A.A. 2010/2011 - Software 2.48

Codifica dei primi 16 numeri interi

Informatica - A.A. 2010/2011 - Software 2.49

Decimale Binario Ottale Esadecimale

0 0000 00 0

1 0001 01 1

2 0010 02 2

3 0011 03 3

4 0100 04 4

5 0101 05 5

6 0110 06 6

7 0111 07 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

Page 26: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

26

Esempi

Informatica - A.A. 2010/2011 - Software 2.50

Codifica del numero 12510 = 11111012

In codice Ottale:

1 111 101

175

In codice Esadecimale:

111 1101

7 D

Esempio 2

Decimale Binario Ottale Esadecimale 5 12 78 149

Esempio 1

Esempi

Informatica - A.A. 2010/2011 - Software 2.51

Codifica del numero 12510 = 11111012

In codice Ottale:

1 111 101

175

In codice Esadecimale:

111 1101

7 D

Esempio 2

Decimale Binario Ottale Esadecimale5 101 5 512 1100 14 C78 1001110 116 4E149 10010101 225 95

Esempio 1

Page 27: 02-Software [modalit compatibilit ]€¦ · INFORMATICO (Tecnico) Sinonimi comunemente adottati • Programmi • Applicazioni • Servizi software • Anche se non sono proprio sinonimi,

27

Informatica - A.A. 2010/2011 - Software

Oltre i numeri interi positivi

• Con il metodo di codifica esaminato, è possibile rappresentare qualunque numerointero positivo rientra nel numero di bit disponibili a rappresentarlo

• Tuttavia, esiste la necessità di rappresentareanche altri tipi di numeri, quali:– Numeri interi negativi: -34 -23456 ...– Numeri frazionari positivi: 234,45 79,001 ...– Numeri frazionari negativi: -234,45 -79,001 ...

• Si usano altri metodi di codifica (più complessi) che non sono argomento di questo corso

2.52