SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Informatica

Rappresentazione dei numeri
   Numerazione binaria
Sistemi di numerazione
• Non posizionali: numerazione romana
• Posizionali: viene associato un peso a
  ciascuna posizione all’interno della
  rappresentazione del numero. Il valore del
  numero viene ottenuto con la somma dei
  prodotti di ciascuna cifra per il relativo
  peso.
    (137,2)b=1 * b2 + 3 * b1 + 7 * b0 + 2*b-1
osservazioni
Se b è la base della numerazione ogni
  numero viene rappresentato da un
  insieme di cifre che ha cardinalità b.
Indicando con ci ogni singola cifra allora
                0 <= ci <= b-1
Base 10: notazione posizionale
I numeri sono rappresentati da una stringa
di cifre 0..9 ed eventualmente da una
virgola.
Ogni cifra ha un peso diverso dovuto alla
posizione occupata: 234,56 è diverso da 342,65

Il peso è dato dalle potenze del 10:
234,56 = 2*102 + 3*101 + 4*100 + 5*10-1 + 6*10-2
342,65 = 3*102 + 4*101 + 2*100 + 6*10-1 + 5*10-2
Base 2: notazione posizionale
I numeri sono rappresentati da una stringa
di cifre 0, 1 ed eventualmente da una
virgola.
Ogni cifra ha un peso diverso dovuto alla
posizione occupata: 101,1 è diverso da 110,01

Il peso è dato dalle potenze del 2:
101,1 = 1*22 + 0*21 + 1*20 + 1*2-1 + 0*2-2
110,01 = 1*22 + 1*21 + 0*20 + 0*2-1 + 1*2-2
Base 8 e base 16
• I numeri in base 8 sono rappresentati da
  una stringa di cifre 0..7 ed eventualmente
  da una virgola.
  506 = 5*82 + 0*81 + 6*80
• I numeri in base 16 sono rappresentati da
  una stringa di cifre 0..9, A..F ed
  eventualmente da una virgola.
  BF3 = 11*162 + 15*161 + 3*160
Vantaggi sistemi posizionali

• Esprimono qualunque valore finito
• Ad ogni valore numerico corrisponde una
  sola sequenza
• Le regole formali per le operazioni
  aritmetiche sono indipendenti dalla base
  della rappresentazione
Quante cifre occorrono?
Con n cifre in base b il numero massimo
 rappresentabile è:
Nmax = (b-1)bn-1+ (b-1)bn-2 + …. + (b-1)b0
     = bn – 1
Per ogni numero Nb con n cifre abbiamo che
          bn-1-1 < Nb <= bn-1 da cui
          bn-1 < Nb+1 <= bn     e quindi

            n-1 < logb (Nb+1) <= n
Numero di cifre: esempio
Sia N10= 318
Con base 2 occorrono
n = log2(318+1) = 8.32 = 9
Con base 8 occorrono
n = log8(318+1) = 2.77 = 3
Con base 16 occorrono
n = log16(318+1) = 2.08 = 3
Conversione da base 2 a base 10
Sia N2= 100101
Applicando la definizione di numero
  posizionale
(100101)2= 1*25+0*24+0*23+1*22+0*21+1*20
          = 32 + 0 + 0 + 4 + 0 + 1
          = 37
Conversione: da 2 a 10
Conversione: da 2 a 10
Il metodo visto nella diapositiva precedente
fornisce utili suggerimenti per la realizzazione di
un algoritmo di conversione:

  numero    0
  FINCHÈ ci sono cifre da convertire
         numero         2 * numero + cifra

numero è il risultato della conversione
Conversione: da 2 a 10
Analogamente per la parte frazionaria:
(0.0101)2= ½(0 + ½(1 + ½(0+ ½ *1)))

numero ← 0
Partendo dall’ultima cifra
while ci sono cifre
        numero ← numero / 2 + cifra


numero è il risultato
Conversione: da 2 a 8
Poiché 8 = 23 si raggruppano i bit a blocchi
di 3 partendo da destra, e si convertono.
         1 101 011 001 diventa
         1 5 3 1
Il procedimento si può invertire: per
trasformare da base 8 a base 2 si
sostituisce    ogni    cifra    ottale    nel
corrispondente binario utilizzando 3 bit.
Conversione: da 2 a 16
Poiché 16 = 24 si raggruppano i bit a
blocchi di 4 partendo da destra, e si
convertono.
         11 0101 1101 diventa
          3 5      D
Il procedimento si può invertire: per
trasformare da base 16 a base 2 si
sostituisce ogni cifra esadecimale nel
corrispondente binario utilizzando 4 bit.
Conversione: da 10 a 2
Esempio:              1836         Resto
                       918            0
                       459            0
                       229            1
                       114            1
                        57            0
                        28            1
                        14            0
                         7            0
                         3            1
                         1            1
                         0            1

  Si riporta la seconda colonna partendo dal fondo: 11100101100
Conversione: da 10 a 2
Algoritmo
Sia n10 il valore da convertire e b la nuova
  base
While n diverso da 0
  restoi ← n mod b
  n ← n div b
Dove
mod è l’0perazione modulo
div è la divisione intera
Conversione: da 10 a 2
Algoritmo:
     si sottrae al numero da convertire la potenza del 2 più grande minore
     del numero stesso. Si usa la differenza ottenuta per ripetere il
     processo. Il numero binario si ottiene segnando 1 alle potenze del 2
     utilizzate, 0 alle altre.


            413     256= 28   28 27 26 25 24   23 22 21 20
            157     128= 27
             29      16= 24
                              1 1 0 0 1        1 1     0 1
             13       8= 23
              5       4= 22
              1       1= 20
Conversione: da 10 a 2
Esempio:        0.234
                0.468   0
                0.936   0
                0.872   1
                0.744   1
                0.488   1
                0.976   0
                0.952   1
                0.904   1
                0.808   1
                0.616   1
                0.232   1
                0.464   0
                0.928   0
il numero in binario è: 0.00111011111100
Il processo non è ancora terminato. Si può continuare per ottenere un
    valore più preciso
Conversione: da 10 a 2
Esempio: 0.3                  Da questo punto in avanti la
               0.6    0
               0.2    1       sequenza si ripete. Il numero in
               0.4    0       base 2 è periodico mentre non lo
               0.8    0
               0.6    1
                              è in base 10.


I numeri periodici cambiano
   cambiando la base con
   cui si rappresentano
Approssimazione numeri frazionari
Quando si converte un numero decimale
frazionario in una nuova base può capitare
che la rappresentazione del numero nella
nuova base abbia infinite cifre.
In questo caso occorre approssimarlo con
una precisione prestabilita.
Approssimazione numeri frazionari
Esempio: trasformare (0.4)10 in base 2 a meno
 di 1/100.
 Per l’approssimazione richiesta sono necessarie 7 cifre
 binarie
             0.4
             0.8   0
             0.6   1
             0.2   1
             0.4   0
             0.8   0
             0.6   1
             0.2   1            0.0110011
Addizione binaria

01 1110         111 110

 101101 + 45    111111 + 63
 100111 = 39         1= 1
1010100   84   1000000   64
Aritmetica dei calcolatori
L’aritmetica dei calcolatori è diversa
  dall’aritmetica:
• I calcolatori eseguono operazioni su
  numeri la cui precisione è finita e fissa.
• La rappresentazione dei numeri avviene
  utilizzando il sistema binario.
Precisione finita
La quantità di memoria utilizzabile per la
rappresentazione di un numero è fissata al
momento in cui viene progettata la
macchina.
Questo determina l’insieme dei numeri
rappresentabili.
Precisione finita: problemi
• I numeri interi relativi sono un insieme
  chiuso rispetto ad addizione, sottrazione e
  moltiplicazione.
• i numeri a precisione finita non sono
  chiusi rispetto alle operazioni di addizione,
  sottrazione, moltiplicazione.

Alcune importanti proprietà dell’addizione   e   della
  moltiplicazione non sono più valide.
Precisione finita
• Non vale la proprietà associativa:
   a + (b + c) potrebbe essere diverso da (a + b) + c


• Non vale la proprietà distributiva:
  a * (b + c) potrebbe essere diverso da a*b + a*c

Potrebbero esistere anche problemi sull’unicità
 dell’elemento neutro.
Numeri binari relativi
Rappresentazione in complemento a due.
Il bit più significativo rappresenta il segno
Numeri positivi: il segno è 0. La parte
   rimanente rappresenta il numero in binario
   puro.
Numeri negativi: il bit di segno è 1. La parte
   rimanente rappresenta il complemento a
   due del numero positivo.
Da decimale a complemento a 2
Se numero >= 0 allora
    0| binario puro
Se numero < 0 allora
    scrivere numero in binario puro
    complementare bit a bit, segno compreso
    aggiungere +1
Da complemento a 2 a decimale
Se bit segno = 0
 binario puro da convertire in decimale
Se bit segno = 1
 complementare bit a bit segno compreso
 sommare +1
 convertire in decimale
 aggiungere il segno -
Complemento a 2: aritmetica
Rappresentare il numero -23 con 8 bit.

23    00010111      11101000 + 1     11101001


Calcolare 12 – 23

12               00001100 +
-23              11101001 =
                 11110101     00001010 + 1   00001011   11
Complemento a 2: aritmetica
Calcolare 125 + 3 utilizzando 8 bit in complemento a 2.
125     64 + 32 + 16 + 8 + 4 + 1     01111101 +
  3     2+1                          00000011 =

                                    10000000

Il numero ottenuto ha il segno uguale ad 1. E’ negativo. Il valore
      rappresentato è –128.
E’ un caso di overflow. Con 8 bit 125 + 3 non si può fare.
Regola generale: quando sommando due valori
   con uguale segno si ottiene un numero con
   segno diverso si ha overflow.
Rappresentazione numeri razionali
I numeri razionali vengono espressi attraverso la
   notazione scientifica :
                    n = f x 10e

in cui
• f si chiama frazione, o mantissa,
• e è un numero intero positivo o negativo
  chiamato esponente.
La versione "informatica" di questa notazione si
  chiama floating point
Floating point: esempi
3,14 = 0,314 x 101 = 3,14 x 100 = 0,00314 x 103 = …….
1,4142 = 0,14142 x 101 = 0,014142 x 102 = 14142 x 10-4
234 = 0,234 x 103 = 234 x 100 = ……………..
0,00001 = 0,1 x 10-4 = 1 x 10-5 = …………………..


• Ogni numero può essere rappresentato in diversi modi.
• L’ordine di grandezza dei numeri rappresentabili è dato
  dal numero di cifre a disposizione per l’esponente.
• La precisione è data dal numero di cifre a disposizione
  per la frazione.
Floating point
Supponiamo di utilizzare:
• 3 cifre con segno per la frazione
• 2 cifre con segno per l’esponente
• La frazione f è 0,1 ≤ |f| < 1
Con questa rappresentazione i numeri vanno da
 0,100 x 10-99 a 0,999 x 1099
                                        3                 5
                                     Underflow          Underflow
                                     negativo           positivo
   1              2                              4                       6                7
Overflow    Numeri negativi                      Zero                Numeri positivi   Overflow
negativo     rappresentabili                                        rappresentabili     positivo


           -10100          -10-100                0                 10-100             10100
Floating point
Verso la fine degli anni '70 la IEEE creò un comitato per
la standardizzazione dell'aritmetica floating-point.
Obiettivo:
– rendere possibile lo scambio di dati floating-point fra calcolatori
  diversi.
– fornire ai progettisti hardware un modello corretto.
Il risultato del lavoro portò alla creazione dello Standard
754 (IEEE, 1985), frutto del lavoro svolto in massima
parte da una persona sola, il professore di matematica di
Berkeley William Kahan.
Floating point

singola precisione (32 bit)
esponente ad eccesso 127




doppia precisione (64 bit)
esponente ad eccesso
1023


precisione estesa (80 bit),
per il calcolo interno
Floating point
• Il bit 1 a sinistra della frazione non deve essere
  memorizzato, poiché è sempre presente.
• Ogni rappresentazione consiste in un 1 bit implicito, una
  virgola binaria implicita e poi 23 o 52 bit arbitrari.
• Se tutti i 23 o 52 bit della frazione sono 0, la frazione ha
  il valore numerico 1,0;
• se sono tutti 1, la frazione è numericamente leggermente
  inferiore a 2,0.
• Per evitare confusioni con una frazione tradizionale, la
  combinazione dell' 1 implicito, della virgola binaria
  implicita e dei 23 o 52 bit espliciti si chiama significando,
  invece di chiamarsi frazione o mantissa.
• Tutti i numeri normalizzati hanno un significando s per
  1<= s<2.
Floating point
Oltre ai numeri normalizzati, lo standard comprende
  anche altri quattro tipi numerici:
• i numeri denormalizzati per rappresentare underflow. Hanno un
  esponente che vale 0 e una frazione rappresentata dai 23 o 52 bit.
• due zeri uno positivo e l'altro negativo, determinati dal bit di segno.
  Entrambi hanno un esponente 0 e una frazione 0.
• il valore "infinito" rappresentato da un esponente con tutti 1 (non
  permesso per i numeri normalizzati) e una frazione di 0.
• un formato speciale, chiamato NaN (Not a Number), con esponente
  1 e qualunque sequenza di bit diversa da 0.
Da decimale a floating point
13.25 → 1101.01
Si normalizza: 1.10101 con esponente 3
Il nuovo esponente sarà 127 + 3 = 130
127 in base 2 → 01111111 +
                        11 =
                 10000010
Il segno 0
0 10000010 10101000000000000000000
Da decimale a floating point
 0.8125 → 0.1101
 Normalizzando: 1.101 con esponente -1
Il nuovo esponente sarà: 01111111 –
                                1
                         01111110
Il segno: 0
0 01111110 10100000000000000000000
Da floating point a decimale
Supponiamo di avere in esadecimale
                40A40000
In binario:
0100 0000 1010 0100 0000 0000 0000 0000
Segno 0 → positivo
Esponente: 10000001 – 01111111 = 10 = 2
Mantissa: 1.01001 → 101.001
Il numero è: 5.125
Da floating point a decimale
Sia: C0A60000
1100 0000 1010 0110 0000 0000 0000 0000
Segno negativo
Esponente: 100000001 – 011111111 = 10
Mantissa: 1.010011 → 101.0011 → 5.1875
Da floating point a decimale
Sia BE000000
1011 1110 0000 0000 0000 0000 0000 0000
Segno negativo
Esponente negativo 01111111 -
                   01111100 =
                          11
Mantissa: 1.0 → 0.001 → - 0.125

Weitere ähnliche Inhalte

Was ist angesagt?

Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteSTELITANO
 
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...Michele Maffucci
 
6 Vettori E Matrici
6   Vettori E Matrici6   Vettori E Matrici
6 Vettori E Matriciguest60e9511
 
Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteSTELITANO
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaMajong DevJfu
 
Calcolo Numerico - 2 - Rappresentazione Dei Numeri
Calcolo Numerico - 2 - Rappresentazione Dei NumeriCalcolo Numerico - 2 - Rappresentazione Dei Numeri
Calcolo Numerico - 2 - Rappresentazione Dei NumeriMajong DevJfu
 
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...Michele Maffucci
 
Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)STELITANO
 
ECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazioneECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazioneFabio Cantaro
 
Sistema Binario E Codice Informatico
Sistema Binario E Codice InformaticoSistema Binario E Codice Informatico
Sistema Binario E Codice Informaticovapiegold
 
0. Gli elementi base del digitale
0. Gli elementi base del digitale0. Gli elementi base del digitale
0. Gli elementi base del digitaleMaurizio Caminito
 
Contenuti 2 modificato
Contenuti 2 modificatoContenuti 2 modificato
Contenuti 2 modificatoNicola Trillo
 

Was ist angesagt? (20)

Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parte
 
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
Sistemi numerici - corso di recupero classe 1 ITIS Informatica - biennio inte...
 
6 Vettori E Matrici
6   Vettori E Matrici6   Vettori E Matrici
6 Vettori E Matrici
 
Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parte
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di Macchina
 
Calcolo Numerico - 2 - Rappresentazione Dei Numeri
Calcolo Numerico - 2 - Rappresentazione Dei NumeriCalcolo Numerico - 2 - Rappresentazione Dei Numeri
Calcolo Numerico - 2 - Rappresentazione Dei Numeri
 
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
Operazioni con numeri binari - corso di recupero classe 1 ITIS Informatica - ...
 
Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)
 
Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 
Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 
Introduzione all’informatica
Introduzione all’informaticaIntroduzione all’informatica
Introduzione all’informatica
 
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
 
ECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazioneECDL modulo 1 ud1: algoritmi rappr informazione
ECDL modulo 1 ud1: algoritmi rappr informazione
 
Le 4 operazioni de marzi
Le 4 operazioni   de marziLe 4 operazioni   de marzi
Le 4 operazioni de marzi
 
Sistema Binario E Codice Informatico
Sistema Binario E Codice InformaticoSistema Binario E Codice Informatico
Sistema Binario E Codice Informatico
 
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
 
0. Gli elementi base del digitale
0. Gli elementi base del digitale0. Gli elementi base del digitale
0. Gli elementi base del digitale
 
Contenuti 2 modificato
Contenuti 2 modificatoContenuti 2 modificato
Contenuti 2 modificato
 
RAPPRESENTAZIONE dei DATI
RAPPRESENTAZIONE dei DATIRAPPRESENTAZIONE dei DATI
RAPPRESENTAZIONE dei DATI
 
Gli insiemi n e z
Gli insiemi n e zGli insiemi n e z
Gli insiemi n e z
 

Ähnlich wie Codifica

Sistemi numerazione
Sistemi numerazione Sistemi numerazione
Sistemi numerazione cinziabb
 
Laboratorio Programmazione: Istruzioni Iterative
Laboratorio Programmazione: Istruzioni IterativeLaboratorio Programmazione: Istruzioni Iterative
Laboratorio Programmazione: Istruzioni IterativeMajong DevJfu
 
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di AnalisiAlgoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di AnalisiPier Luca Lanzi
 
Moltiplichiamo...per gelosia!
Moltiplichiamo...per gelosia!Moltiplichiamo...per gelosia!
Moltiplichiamo...per gelosia!Lmariani
 
12 Linux Network Netmask
12 Linux Network Netmask12 Linux Network Netmask
12 Linux Network NetmaskMauro Ferrigno
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)STELITANO
 
Calcolo della frazione generatrice di un numero periodico
Calcolo della frazione generatrice di un numero periodicoCalcolo della frazione generatrice di un numero periodico
Calcolo della frazione generatrice di un numero periodicoEnrico Denti
 
Vacaze natale compiti
Vacaze natale compitiVacaze natale compiti
Vacaze natale compitigiovyrind
 
Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti
Fondamenti esercitazioni parte2d_eserciziriassuntivisvoltiFondamenti esercitazioni parte2d_eserciziriassuntivisvolti
Fondamenti esercitazioni parte2d_eserciziriassuntivisvoltiFabrizio Solinas
 
Calcolo manuale della radice quadrata
Calcolo manuale della radice quadrataCalcolo manuale della radice quadrata
Calcolo manuale della radice quadrataEnrico Denti
 
Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoprofman
 

Ähnlich wie Codifica (19)

Sistemidi numerazione
Sistemidi numerazioneSistemidi numerazione
Sistemidi numerazione
 
Sistemi numerazione
Sistemi numerazione Sistemi numerazione
Sistemi numerazione
 
Gli insiemi q e r
Gli insiemi q e rGli insiemi q e r
Gli insiemi q e r
 
Laboratorio Programmazione: Istruzioni Iterative
Laboratorio Programmazione: Istruzioni IterativeLaboratorio Programmazione: Istruzioni Iterative
Laboratorio Programmazione: Istruzioni Iterative
 
SISTEMI BINARIO ed ESADECIMALE - ALGORITMI - LINGUAGGI
SISTEMI BINARIO ed ESADECIMALE - ALGORITMI - LINGUAGGISISTEMI BINARIO ed ESADECIMALE - ALGORITMI - LINGUAGGI
SISTEMI BINARIO ed ESADECIMALE - ALGORITMI - LINGUAGGI
 
Crc
CrcCrc
Crc
 
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di AnalisiAlgoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
Algoritmi e Calcolo Parallelo 2012/2013 - Tecniche di Analisi
 
Bit byte
Bit byteBit byte
Bit byte
 
07 2 ricorsione
07 2 ricorsione07 2 ricorsione
07 2 ricorsione
 
Moltiplichiamo...per gelosia!
Moltiplichiamo...per gelosia!Moltiplichiamo...per gelosia!
Moltiplichiamo...per gelosia!
 
12 Linux Network Netmask
12 Linux Network Netmask12 Linux Network Netmask
12 Linux Network Netmask
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
 
Reti Logic
Reti LogicReti Logic
Reti Logic
 
Somma matrici
Somma matriciSomma matrici
Somma matrici
 
Calcolo della frazione generatrice di un numero periodico
Calcolo della frazione generatrice di un numero periodicoCalcolo della frazione generatrice di un numero periodico
Calcolo della frazione generatrice di un numero periodico
 
Vacaze natale compiti
Vacaze natale compitiVacaze natale compiti
Vacaze natale compiti
 
Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti
Fondamenti esercitazioni parte2d_eserciziriassuntivisvoltiFondamenti esercitazioni parte2d_eserciziriassuntivisvolti
Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti
 
Calcolo manuale della radice quadrata
Calcolo manuale della radice quadrataCalcolo manuale della radice quadrata
Calcolo manuale della radice quadrata
 
Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplesso
 

Mehr von guest60e9511

Mehr von guest60e9511 (11)

13 Puntatori E Memoria Dinamica
13   Puntatori E Memoria Dinamica13   Puntatori E Memoria Dinamica
13 Puntatori E Memoria Dinamica
 
12 Struct
12   Struct12   Struct
12 Struct
 
11 I File
11   I File11   I File
11 I File
 
10 Typedef Enum
10   Typedef Enum10   Typedef Enum
10 Typedef Enum
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I O
 
8 Algoritmi
8   Algoritmi8   Algoritmi
8 Algoritmi
 
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterative
 
4 Strutture Condizionali
4   Strutture Condizionali4   Strutture Condizionali
4 Strutture Condizionali
 
4 Algebra Di Boole
4   Algebra Di Boole4   Algebra Di Boole
4 Algebra Di Boole
 
3 Linguaggioc
3   Linguaggioc3   Linguaggioc
3 Linguaggioc
 

Kürzlich hochgeladen

Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 

Kürzlich hochgeladen (9)

Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 

Codifica

  • 2. Sistemi di numerazione • Non posizionali: numerazione romana • Posizionali: viene associato un peso a ciascuna posizione all’interno della rappresentazione del numero. Il valore del numero viene ottenuto con la somma dei prodotti di ciascuna cifra per il relativo peso. (137,2)b=1 * b2 + 3 * b1 + 7 * b0 + 2*b-1
  • 3. osservazioni Se b è la base della numerazione ogni numero viene rappresentato da un insieme di cifre che ha cardinalità b. Indicando con ci ogni singola cifra allora 0 <= ci <= b-1
  • 4. Base 10: notazione posizionale I numeri sono rappresentati da una stringa di cifre 0..9 ed eventualmente da una virgola. Ogni cifra ha un peso diverso dovuto alla posizione occupata: 234,56 è diverso da 342,65 Il peso è dato dalle potenze del 10: 234,56 = 2*102 + 3*101 + 4*100 + 5*10-1 + 6*10-2 342,65 = 3*102 + 4*101 + 2*100 + 6*10-1 + 5*10-2
  • 5. Base 2: notazione posizionale I numeri sono rappresentati da una stringa di cifre 0, 1 ed eventualmente da una virgola. Ogni cifra ha un peso diverso dovuto alla posizione occupata: 101,1 è diverso da 110,01 Il peso è dato dalle potenze del 2: 101,1 = 1*22 + 0*21 + 1*20 + 1*2-1 + 0*2-2 110,01 = 1*22 + 1*21 + 0*20 + 0*2-1 + 1*2-2
  • 6. Base 8 e base 16 • I numeri in base 8 sono rappresentati da una stringa di cifre 0..7 ed eventualmente da una virgola. 506 = 5*82 + 0*81 + 6*80 • I numeri in base 16 sono rappresentati da una stringa di cifre 0..9, A..F ed eventualmente da una virgola. BF3 = 11*162 + 15*161 + 3*160
  • 7. Vantaggi sistemi posizionali • Esprimono qualunque valore finito • Ad ogni valore numerico corrisponde una sola sequenza • Le regole formali per le operazioni aritmetiche sono indipendenti dalla base della rappresentazione
  • 8. Quante cifre occorrono? Con n cifre in base b il numero massimo rappresentabile è: Nmax = (b-1)bn-1+ (b-1)bn-2 + …. + (b-1)b0 = bn – 1 Per ogni numero Nb con n cifre abbiamo che bn-1-1 < Nb <= bn-1 da cui bn-1 < Nb+1 <= bn e quindi n-1 < logb (Nb+1) <= n
  • 9. Numero di cifre: esempio Sia N10= 318 Con base 2 occorrono n = log2(318+1) = 8.32 = 9 Con base 8 occorrono n = log8(318+1) = 2.77 = 3 Con base 16 occorrono n = log16(318+1) = 2.08 = 3
  • 10. Conversione da base 2 a base 10 Sia N2= 100101 Applicando la definizione di numero posizionale (100101)2= 1*25+0*24+0*23+1*22+0*21+1*20 = 32 + 0 + 0 + 4 + 0 + 1 = 37
  • 12. Conversione: da 2 a 10 Il metodo visto nella diapositiva precedente fornisce utili suggerimenti per la realizzazione di un algoritmo di conversione: numero 0 FINCHÈ ci sono cifre da convertire numero 2 * numero + cifra numero è il risultato della conversione
  • 13. Conversione: da 2 a 10 Analogamente per la parte frazionaria: (0.0101)2= ½(0 + ½(1 + ½(0+ ½ *1))) numero ← 0 Partendo dall’ultima cifra while ci sono cifre numero ← numero / 2 + cifra numero è il risultato
  • 14. Conversione: da 2 a 8 Poiché 8 = 23 si raggruppano i bit a blocchi di 3 partendo da destra, e si convertono. 1 101 011 001 diventa 1 5 3 1 Il procedimento si può invertire: per trasformare da base 8 a base 2 si sostituisce ogni cifra ottale nel corrispondente binario utilizzando 3 bit.
  • 15. Conversione: da 2 a 16 Poiché 16 = 24 si raggruppano i bit a blocchi di 4 partendo da destra, e si convertono. 11 0101 1101 diventa 3 5 D Il procedimento si può invertire: per trasformare da base 16 a base 2 si sostituisce ogni cifra esadecimale nel corrispondente binario utilizzando 4 bit.
  • 16. Conversione: da 10 a 2 Esempio: 1836 Resto 918 0 459 0 229 1 114 1 57 0 28 1 14 0 7 0 3 1 1 1 0 1 Si riporta la seconda colonna partendo dal fondo: 11100101100
  • 17. Conversione: da 10 a 2 Algoritmo Sia n10 il valore da convertire e b la nuova base While n diverso da 0 restoi ← n mod b n ← n div b Dove mod è l’0perazione modulo div è la divisione intera
  • 18. Conversione: da 10 a 2 Algoritmo: si sottrae al numero da convertire la potenza del 2 più grande minore del numero stesso. Si usa la differenza ottenuta per ripetere il processo. Il numero binario si ottiene segnando 1 alle potenze del 2 utilizzate, 0 alle altre. 413 256= 28 28 27 26 25 24 23 22 21 20 157 128= 27 29 16= 24 1 1 0 0 1 1 1 0 1 13 8= 23 5 4= 22 1 1= 20
  • 19. Conversione: da 10 a 2 Esempio: 0.234 0.468 0 0.936 0 0.872 1 0.744 1 0.488 1 0.976 0 0.952 1 0.904 1 0.808 1 0.616 1 0.232 1 0.464 0 0.928 0 il numero in binario è: 0.00111011111100 Il processo non è ancora terminato. Si può continuare per ottenere un valore più preciso
  • 20. Conversione: da 10 a 2 Esempio: 0.3 Da questo punto in avanti la 0.6 0 0.2 1 sequenza si ripete. Il numero in 0.4 0 base 2 è periodico mentre non lo 0.8 0 0.6 1 è in base 10. I numeri periodici cambiano cambiando la base con cui si rappresentano
  • 21. Approssimazione numeri frazionari Quando si converte un numero decimale frazionario in una nuova base può capitare che la rappresentazione del numero nella nuova base abbia infinite cifre. In questo caso occorre approssimarlo con una precisione prestabilita.
  • 22. Approssimazione numeri frazionari Esempio: trasformare (0.4)10 in base 2 a meno di 1/100. Per l’approssimazione richiesta sono necessarie 7 cifre binarie 0.4 0.8 0 0.6 1 0.2 1 0.4 0 0.8 0 0.6 1 0.2 1 0.0110011
  • 23. Addizione binaria 01 1110 111 110 101101 + 45 111111 + 63 100111 = 39 1= 1 1010100 84 1000000 64
  • 24. Aritmetica dei calcolatori L’aritmetica dei calcolatori è diversa dall’aritmetica: • I calcolatori eseguono operazioni su numeri la cui precisione è finita e fissa. • La rappresentazione dei numeri avviene utilizzando il sistema binario.
  • 25. Precisione finita La quantità di memoria utilizzabile per la rappresentazione di un numero è fissata al momento in cui viene progettata la macchina. Questo determina l’insieme dei numeri rappresentabili.
  • 26. Precisione finita: problemi • I numeri interi relativi sono un insieme chiuso rispetto ad addizione, sottrazione e moltiplicazione. • i numeri a precisione finita non sono chiusi rispetto alle operazioni di addizione, sottrazione, moltiplicazione. Alcune importanti proprietà dell’addizione e della moltiplicazione non sono più valide.
  • 27. Precisione finita • Non vale la proprietà associativa: a + (b + c) potrebbe essere diverso da (a + b) + c • Non vale la proprietà distributiva: a * (b + c) potrebbe essere diverso da a*b + a*c Potrebbero esistere anche problemi sull’unicità dell’elemento neutro.
  • 28. Numeri binari relativi Rappresentazione in complemento a due. Il bit più significativo rappresenta il segno Numeri positivi: il segno è 0. La parte rimanente rappresenta il numero in binario puro. Numeri negativi: il bit di segno è 1. La parte rimanente rappresenta il complemento a due del numero positivo.
  • 29. Da decimale a complemento a 2 Se numero >= 0 allora 0| binario puro Se numero < 0 allora scrivere numero in binario puro complementare bit a bit, segno compreso aggiungere +1
  • 30. Da complemento a 2 a decimale Se bit segno = 0 binario puro da convertire in decimale Se bit segno = 1 complementare bit a bit segno compreso sommare +1 convertire in decimale aggiungere il segno -
  • 31. Complemento a 2: aritmetica Rappresentare il numero -23 con 8 bit. 23 00010111 11101000 + 1 11101001 Calcolare 12 – 23 12 00001100 + -23 11101001 = 11110101 00001010 + 1 00001011 11
  • 32. Complemento a 2: aritmetica Calcolare 125 + 3 utilizzando 8 bit in complemento a 2. 125 64 + 32 + 16 + 8 + 4 + 1 01111101 + 3 2+1 00000011 = 10000000 Il numero ottenuto ha il segno uguale ad 1. E’ negativo. Il valore rappresentato è –128. E’ un caso di overflow. Con 8 bit 125 + 3 non si può fare. Regola generale: quando sommando due valori con uguale segno si ottiene un numero con segno diverso si ha overflow.
  • 33. Rappresentazione numeri razionali I numeri razionali vengono espressi attraverso la notazione scientifica : n = f x 10e in cui • f si chiama frazione, o mantissa, • e è un numero intero positivo o negativo chiamato esponente. La versione "informatica" di questa notazione si chiama floating point
  • 34. Floating point: esempi 3,14 = 0,314 x 101 = 3,14 x 100 = 0,00314 x 103 = ……. 1,4142 = 0,14142 x 101 = 0,014142 x 102 = 14142 x 10-4 234 = 0,234 x 103 = 234 x 100 = …………….. 0,00001 = 0,1 x 10-4 = 1 x 10-5 = ………………….. • Ogni numero può essere rappresentato in diversi modi. • L’ordine di grandezza dei numeri rappresentabili è dato dal numero di cifre a disposizione per l’esponente. • La precisione è data dal numero di cifre a disposizione per la frazione.
  • 35. Floating point Supponiamo di utilizzare: • 3 cifre con segno per la frazione • 2 cifre con segno per l’esponente • La frazione f è 0,1 ≤ |f| < 1 Con questa rappresentazione i numeri vanno da 0,100 x 10-99 a 0,999 x 1099 3 5 Underflow Underflow negativo positivo 1 2 4 6 7 Overflow Numeri negativi Zero Numeri positivi Overflow negativo rappresentabili rappresentabili positivo -10100 -10-100 0 10-100 10100
  • 36. Floating point Verso la fine degli anni '70 la IEEE creò un comitato per la standardizzazione dell'aritmetica floating-point. Obiettivo: – rendere possibile lo scambio di dati floating-point fra calcolatori diversi. – fornire ai progettisti hardware un modello corretto. Il risultato del lavoro portò alla creazione dello Standard 754 (IEEE, 1985), frutto del lavoro svolto in massima parte da una persona sola, il professore di matematica di Berkeley William Kahan.
  • 37. Floating point singola precisione (32 bit) esponente ad eccesso 127 doppia precisione (64 bit) esponente ad eccesso 1023 precisione estesa (80 bit), per il calcolo interno
  • 38. Floating point • Il bit 1 a sinistra della frazione non deve essere memorizzato, poiché è sempre presente. • Ogni rappresentazione consiste in un 1 bit implicito, una virgola binaria implicita e poi 23 o 52 bit arbitrari. • Se tutti i 23 o 52 bit della frazione sono 0, la frazione ha il valore numerico 1,0; • se sono tutti 1, la frazione è numericamente leggermente inferiore a 2,0. • Per evitare confusioni con una frazione tradizionale, la combinazione dell' 1 implicito, della virgola binaria implicita e dei 23 o 52 bit espliciti si chiama significando, invece di chiamarsi frazione o mantissa. • Tutti i numeri normalizzati hanno un significando s per 1<= s<2.
  • 39. Floating point Oltre ai numeri normalizzati, lo standard comprende anche altri quattro tipi numerici: • i numeri denormalizzati per rappresentare underflow. Hanno un esponente che vale 0 e una frazione rappresentata dai 23 o 52 bit. • due zeri uno positivo e l'altro negativo, determinati dal bit di segno. Entrambi hanno un esponente 0 e una frazione 0. • il valore "infinito" rappresentato da un esponente con tutti 1 (non permesso per i numeri normalizzati) e una frazione di 0. • un formato speciale, chiamato NaN (Not a Number), con esponente 1 e qualunque sequenza di bit diversa da 0.
  • 40. Da decimale a floating point 13.25 → 1101.01 Si normalizza: 1.10101 con esponente 3 Il nuovo esponente sarà 127 + 3 = 130 127 in base 2 → 01111111 + 11 = 10000010 Il segno 0 0 10000010 10101000000000000000000
  • 41. Da decimale a floating point 0.8125 → 0.1101 Normalizzando: 1.101 con esponente -1 Il nuovo esponente sarà: 01111111 – 1 01111110 Il segno: 0 0 01111110 10100000000000000000000
  • 42. Da floating point a decimale Supponiamo di avere in esadecimale 40A40000 In binario: 0100 0000 1010 0100 0000 0000 0000 0000 Segno 0 → positivo Esponente: 10000001 – 01111111 = 10 = 2 Mantissa: 1.01001 → 101.001 Il numero è: 5.125
  • 43. Da floating point a decimale Sia: C0A60000 1100 0000 1010 0110 0000 0000 0000 0000 Segno negativo Esponente: 100000001 – 011111111 = 10 Mantissa: 1.010011 → 101.0011 → 5.1875
  • 44. Da floating point a decimale Sia BE000000 1011 1110 0000 0000 0000 0000 0000 0000 Segno negativo Esponente negativo 01111111 - 01111100 = 11 Mantissa: 1.0 → 0.001 → - 0.125