Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


codifica & floating-point, Slide di Elementi di Informatica

Slides su codifica-floating-point

Tipologia: Slide

2018/2019

Caricato il 29/09/2019

Federico.D_Aprile
Federico.D_Aprile 🇮🇹

8 documenti

1 / 55

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Corso di
Architettura degli Elaboratori
a.a. 2015/2016
Codifica dell'informazione:
Numeri a Virgola Mobile,
Immagini e Suoni
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37

Anteprima parziale del testo

Scarica codifica & floating-point e più Slide in PDF di Elementi di Informatica solo su Docsity!

Corso di

Architettura degli Elaboratori

a.a. 2015/

Codifica dell'informazione: Numeri a Virgola Mobile, Immagini e Suoni

Numeri in virgola mobile

In un calcolo

astronomico

è necessario esprimere:

la massa dell’elettrone:

9 × 10

-28^ grammi^ 0.

la massa del sole:

2 × 10

33 grammi^2000000000000000000000000000000000

Quante cifre occorre usare? 62 cifre: 34 alla sinistra della virgola e 28 a destra^ 0000000000000000000000000000000000.0000000000000000000000000009^ 2000000000000000000000000000000000.0000000000000000000000000000 Problema

: anche se la gamma dei numeri necessari è molto grande, i numeri significativi sono pochi…… Soluzione

: notazione scientifica

Numeri in virgola mobile

Esempi: 3,

= 0,314 × 10

1

= 3,14 × 10
0 = 314 × 10
= - 5 × 10

-^

= - 0,5 × 10
= 127 × 10

6

= 1,27 × 10

8

La rappresentazione non è unica; esistono convenzioni che permettono diottenere una rappresentazione unica, ad es. imponendo che la prima cifrasignificativa della mantissa si trovi immediatamente a destra della virgola;queste forme si dicono

rappresentazioni normalizzate

:

= 0,314 × 10

1

= - 0,5 × 10
= 0,127 × 10

9

Numeri in virgola mobile

Pensando ad una utilizzazione per il calcolatore si possono stabilireulteriori convenzioni: ƒ fissare la lunghezza

della mantissa ad un valore costante

ƒ^ limitare l’esponente

ad opportuni intervalli

ƒ^ utilizzare un

esponente

convenzionale che lo renda

sempre positivo

(notazione in eccesso) ƒ disporre i tre elementi: <segno, esponente, mantissa> in un ordine stabilito

segno

esponente

mantissa

Numeri in virgola mobile

Esempio di rappresentazione floating point binaria su 32 bit il primo bit rappresenta il segno della mantissa (0 per +, 1 per -) 7 bit successivi rappresentano l’esponente (espresso in base 2) in notazione eccesso 64 (esponente effettivo tra -64 e +63) gli ultimi 24 bit rappresentano la mantissa normalizzata Esempio:

204,

rappresentazione binaria:

11001100,

rappresentazione normalizzata

0,110011000010110010000111 × 10

1000

-^ bit di segno:

0

-^ esponente eccesso 64:

1001000

-^ mantissa:

110011000010110010000111

(^10010000)

110011000010110010000111

(^0) × 2 (^8) × 2 Spostando

la virgola

a^ sinistra (dividere

per^

la base)^

si^ aumenta di 1 l’esponente (simoltiplica

per^

la base) mantenendol’uguaglianza

Numeri in virgola mobile

La^

gamma (range)

è determinata dal numero di

cifre dell’esponente e la

precisione

dal numero di

cifre della mantissa.

ATTENZIONE!!

Con i numeri floating-point si può “simulare” ilsistema dei numeri reali, pur con grandi differenze:^ i numeri reali hanno la potenza del continuo^ i numeri floating point sono in numero finito

Numeri in virgola mobile

ƒ^ “Spazio” tra numeri adiacenti non costante ƒ^ Arrotondamento ƒ^ Il numero di cifre della mantissa determina la densità deipunti, cioè la

precisione

delle approssimazioni

ƒ^ Il numero di cifre dell’esponente determina la

dimensione

degli intervalli

dei numeri rappresentabili

  • 0,999 x 10

99

0,999 x 10

99

-100 -

-100 10 0

Overflow negativo

Numeri negativi rappresentabili

Numeri positivi rappresentabili

Underflow negativo

Underflow positivo zero

Overflow positivo

Standard IEEE 754

Ogni produttore aveva un suo formato floating-point Fine anni '70 la

IEEE

costituisce un comitato al fine

di^ standardizzare

l'aritmetica floating-point

Tre formati:

singola precisione

(32 bit),

doppia

precisione

(64 bit),

precisione estesa

(80 bit)

Base 2

per mantissa,

notazione in eccesso

per

esponente Mantissa

normalizzata

: la parte intera

è^ sempre 1,

questo bit

è^ nascosto quindi la mantissa si

compone della sola parte frazionaria

Standard IEEE 754

0 segno

1 0 0 0 0 1 1 1^ Esponente^ eccesso 127

8 bit

1 0 1 1 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

23 bit^ mantissa

432

0 216

0 108

0 54

0 27

1 13

1 6

0 3

1 1

1

⎢^10

⎢^2

x^2

8

x 2

x^2

8

Standard IEEE 754

Numeri normalizzati e denormalizzati Formati speciali per identificare infinito e NaN(Not a Number, esempio se dividiamo infinitoper infinito)

esp^

mantissa M

valore v

Numero normalizzato Numero denormalizzato Zero Infinito NaN

0 <^ esp

< 255 esp^ = 0 esp^ = 0 esp^ = 255 esp^ = 255

qualunque^ M^

^^0 M = 0 M = 0 M ≠^^0

v^ = (-1)

s(1, M

esp-127) v^ = (-1)

s(0, M

-126) v^ = (-1)

s^0 v^ = (-1)

s∝ v^ = NaN

Il codice ASCII: alcuni caratteri^ ASCII

Simb.

ASCII

Simb.

ASCII

Simb.

00101010

*****^

00111001

9

01000111

G

00101011 +

00111010

:^

01001000

H

00101100 ,

00111011

;^

01001001

I

00101101 -

00111100

<^

01001010

J

00101110.

00111101

=^

01001011

K

00101111 /

00111110

>^

01001100

L

00110000 0

00111111

?^

01001101

M

00110001 1

01000000

@^

01001110

N

00110010 2

01000001

A^

01001111

O

00110011 3

01000010

B^

01010000

P

00110100 4

01000011

C^

01010001

Q

00110101 5

01000100

D^

01010010

R

00110110 6

01000101

E^

01010011

S

00111000 8

01000110

F^

01010100

T

Il codice ASCII

Sebbene 7 bit siano sufficienti per codificare l’insieme di caratteri diuso comune, il codice ASCII standard utilizza 8 bit, il primo (più asinistra) dei quali è sempre 0 Esempio: codifica della parola

cane

Problema inverso: quale testo è codificato da una datasequenza?^ ƒ^ si divide la sequenza in gruppi di otto bit (un byte);^ ƒ^ si determina il carattere corrispondente ad ogni byte^011010010110110000100000010100000110111100101110

c^

a^

n^

e

Numeri: ASCII vs binario

I^ numeri possono essere codificati in due modi:^ ƒ^ ASCII

:^

(2 byte)

ƒ^ BINARIO
:^^37

(1 byte)

Il primo modo è usato per le comunicazioni con l'esterno(input/output) Il secondo modo è usato all'interno; per fare i calcoli non è possibileusare direttamente le codifiche ASCII (Esistono dei programmi diconversione che trasformano i numeri da una codifica all'altra) Esempio^ 3 + 2 = e

(vi ricordate? Una codifica dove la somma delle rappresentazioni restituisce la rappresentazione della somma) (in ASCII:

La codifica UNICODE

8 52 lettere alfabetiche maiuscole e minuscole, 10 caratteri chedenotano le cifre (0, 1, 2, …, 9), segni di punteggiatura (,. ; :! ”? ’ ^ \ …), simboli matematici (+, -,

×^ , ±, {, [, >, …),

caratteri di alfabeti nazionali (à, è, ì, ò, ù, ç, ñ, ö, ...), altrisegni grafici (©,

↑,^

8 16 bit per carattere: la codifica di quelli presenti in ASCII è lastessa sugli 8 bit meno significativi (gli 8 più significativi sonoa 0). Ad esempio: il carattere

K^ è codificato in:

9 ASCII come

^01001011

9 UNICODE come

8 Il carattere

é^ invece (non presente in ASCII) è codificato

come

8 Le lingue di tutto il mondo utilizzano all’incirca 200000simboli: UNICODE non sufficiente