il sistema di numerazione decimale - unisannio.itelementi di informatica a.a. 2017/18 - prof. g.a....

16
Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca Corso di Laurea in Ingegneria Energetica 1 Elementi di Informatica Prof. G. A. Di Lucca - Univ. del Sannio 1 Sistemi di Numerazione e Rappresentazione interna di Numeri La rappresentazione interna dei numeri richiede: una codifica, ovvero la definizione di un alfabeto in codice e di un codice la definizione di operazioni ed algoritmi che consentano di realizzare sulle rappresentazioni dei numeri le operazioni del tipo di numero codificato Un sistema di numerazione è definito da: alfabeto codice: ovvero l’insieme dei simboli base, le CIFRE un codice: un insieme di regole che permettono di definire la rappresentazione di un numero mediante una stringa di cifre un insieme di operazioni che realizzano sulla rappresentazione dei numeri le operazioni previste per i numeri stessi Elementi di Informatica Prof. G. A. Di Lucca - Univ. del Sannio 2 il sistema di numerazione decimale • l’alfabeto codice è costituito da dieci cifre ciascuna cifra nella parola codice rappresenta un numero dipendente dalla cifra stessa e dalla posizione occupata dalla cifra nella parola codice in cui si trova una parola codice rappresenta un numero dato dalla somma pesata dei numeri rappresentati dalle singole cifre che lo compongono

Upload: others

Post on 12-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 1

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 1

    Sistemi di Numerazione e Rappresentazione interna di Numeri

    La rappresentazione interna dei numeri richiede:

    • una codifica, ovvero la definizione di un alfabeto in codice e di un codice

    • la definizione di operazioni ed algoritmi che consentano di realizzare

    sulle rappresentazioni dei numeri le operazioni del tipo di numero

    codificato

    Un sistema di numerazione è definito da:

    • alfabeto codice: ovvero l’insieme dei simboli base, le CIFRE

    • un codice: un insieme di regole che permettono di definire la

    rappresentazione di un numero mediante una stringa di cifre

    • un insieme di operazioni che realizzano sulla rappresentazione dei

    numeri le operazioni previste per i numeri stessi

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 2

    il sistema di numerazione decimale

    • l’alfabeto codice è costituito da dieci cifre

    • ciascuna cifra nella parola codice rappresenta un

    numero dipendente dalla cifra stessa e dalla posizione

    occupata dalla cifra nella parola codice in cui si trova

    • una parola codice rappresenta un numero dato dalla

    somma pesata dei numeri rappresentati dalle singole

    cifre che lo compongono

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 2

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 3

    • alle cifre (0,1,2,3,4,5,6,7,8,9) vengono associati

    nell’ordine i primi 10 numeri Naturali

    • detto i il posto occupato dalla cifra ci in una stringa (il

    primo posto a partire da destra è il posto 0), il numero

    rappresentato da tale cifra è: ci *10i

    esempio: la stringa 3542 rappresenta il numero:

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

    • il sistema viene detto POSIZIONALE e PESATO

    • 10 è detta la BASE del sistema

    il sistema di numerazione decimale

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 4

    cambiando l’alfabeto codice e la base, si possono costruire sistemi posizionali e pesati diversi da quello decimale

    un numero X >0 è rappresentato mediante la stringa di cifre:

    Cn-1 Cn-2 .........C1 C0 . C-1 C-2...... C-m

    con in

    mi

    i bCX

    1

    … ovviamente nelle operazioni aritmetiche bisogna tener presente la base b della numerazione ...

    …in generale ...

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 3

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 5

    Il sistema decimale

    • Base: b = 10

    • Cifre: (0,1,2,3,4,5,6,7,8,9)

    • Pesi: i pesi sono potenze delle base 10

    … 10 4 10 3 10 2 10 1 10 0

    … 10.000 1000 100 10 1

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 6

    Il sistema ottale • Base: b = 8

    • Cifre: (0,1,2,3,4,5,6,7)

    • Pesi: i pesi sono potenze delle base 8

    Alcune corrispondenze tra numeri in base 8 e 10

    68 = 610 108 = 810 118 = 910 128 = 1010 138 =... .… = 1910

    778 = 6310 1008 = 6410 7778= …. 10008 = ….

    0.18 = 1/810 0.018 = 1/6410 0.0018 0.778

    … 84 83 82 81 80

    … 4.096 512 64 8 1

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 4

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 7

    Il sistema esadecimale

    • Base = 16

    • Cifre: (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

    • Pesi: … potenze della base 16

    1016 = 1610 16C16 = 36410

    0.1 0.01

    … 164 163 162 161 16 0

    … 65.536 4.096

    256 16 1

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 8

    Il sistema binario

    • Base = 2

    • Cifre: (0,1)

    • Pesi: ...potenze della base 2

    102 = 210 1002 = 410 1110102 = 5810

    0.12 = 1/210 0.012 = 1/410 0.112 = 3/410

    220

    … 211

    210 29 28 27 26 25 24 23 22 21 2 0

    1048576 … 2048 1024 512 256 128 64 32 16 8 4 2 1

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 5

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 9

    Tabella

    riassuntiva

    F 17 1111 15

    E 16 1110 14

    D 15 1101 13

    C 14 1100 12

    B 13 1011 11

    A 12 1010 10

    9 11 1001 9

    8 10 1000 8

    7 07 0111 7

    6 06 0110 6

    5 05 0101 5

    4 04 0100 4

    3 03 0011 3

    2 02 0010 2

    1 01 0001 1

    0 00 0000 0

    Esadecimale Ottale Binario Decimale

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 10

    … una caratteristica dei sistemi a base 2k

    se adottiamo per ciascuna cifra dell’alfabeto codice una codifica

    in numerazione binaria

    – ad esempio ottale: (0,1,2,3,4,5,6,7)

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

    si ha che la codifica binaria indiretta coincide con quella diretta

    – ad esempio: 778 = 111 1112 348= 011 1002

    idem se codice esadecimale: (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

    – (0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001,

    1010, 1011, 1100, 1101, 1110, 1111)

    – A916 = 1010 10012 FF16 = 1111 11112

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 6

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 11

    i numeri periodici:

    • il concetto di numero periodico è del tutto dipendente dalla base

    di numerazione

    • un numero periodico in una determinata base può non esserlo in

    un’altra

    • esempio: 1/3 è periodico nella base decimale ma nella base 3 è

    esattamente rappresentato da 0.1;

    0.110 è periodico in binario

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 12

    CONVERSIONE DA BASE DECIMALE A BASE b Dato N>0 intero, in base decimale, convertirlo in base b:

    • dividiamo N per b, otteniamo un quoto Q0 ed un resto R0 : N=Q0b+R0 • dividiamo Q0 per b, otteniamo un quoto Q1 ed un resto R1 :Q0=Q1b+R • Continuiamo a dividere Q0 finché Qn < b, o finchè dividendo Qn per b

    il quoto è zero :

    • Q1= Q2b+R2 • …………. • Qn-1= Qnb+Rn dove Qn < b

    • Qn= 0 + Qn

    … quindi:

    N = Qnbn+1 + Rnb

    n + Rn-1bn-1 + … + R1b +R0b

    0

    e quindi N nella base b la rappresentazione è:

    QnRnRn-1 ........R1R0

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 7

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 13

    Esempio:

    conversione di 10268 decimale in base ottale

    10268 : 8 1283 resto 4

    1283 : 8 160 resto 3

    160 : 8 20 resto 0

    20 : 8 2 resto 4

    2 : 8 0 resto 2

    1026810 = 240348

    cifra più significativa cifra meno significativa

    Dividendo base Quoto Resto

    10268 8 1283 4

    1283 8 160 3

    160 8 20 0

    20 8 2 4

    2 8 0 2

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 14

    conversione in base binaria di 123 decimale

    123 : 2 61 resto 1

    61 : 2 30 resto 1

    30 : 2 15 resto 0

    15 : 2 7 resto 1

    7 : 2 3 resto 1

    3 : 2 1 resto 1

    1 : 2 0 resto 1

    12310 = 11110112

    Esempio:

    123 : 2

    61 : 2

    30 : 2

    15 : 2

    7 : 2

    1 : 2

    1

    1

    0

    1

    1

    3 : 2

    1

    1 0

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 8

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 15

    Aritmetica dei numeri naturali

    • Algoritmi classici per la realizzazione delle operazioni

    aritmetiche (noti dalle scuole elementari)

    • le regole sono le stesse per tutti i sistemi di numerazione

    posizionali (non solo quello decimale):

    – per addizione e sottrazione numeri in colonna e riporto …,

    – per moltiplicazione e divisione uso di tavole pitagoriche per

    le singole cifre …

    – un esempio … in decimale ... 1 1

    4987 + 3232

    8219

    riporti

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 16

    Aritmetica binaria

    • Un numero viene rappresentato da una stringa di n bit

    • L’intervallo rappresentato è: 0 y < 2n

    ad esempio se n = 16 l'intervallo è [0, 65536)

    Per le operazioni valgono le stesse regole della base decimale

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 9

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 17

    Aritmetica binaria

    • Addizione

    • Stesse regole della aritmetica decimale

    r a b s r'

    0 0 0 0 0

    0 0 1 1 0

    0 1 0 1 0

    0 1 1 0 1

    1 0 0 1 0

    1 0 1 0 1

    1 1 0 0 1

    1 1 1 1 1

    r: riporto

    a,b: addendi

    s: somma

    r’: nuovo riporto

    1 1

    0110 + 0111 =

    1101

    riporti

    Somma Binaria

    610 + 710 =

    1310

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 18

    Aritmetica binaria

    • Sottrazione

    • Stesse regole della aritmetica decimale

    0 1 1 1 1

    1 0 1 0 0 1 - 0 0 1 1 1 1 =

    0 1 1 0 1 0

    prestito

    Sottrazione

    Binaria

    Minuendo Sottraendo Differenza Prestito

    0 0 0

    1 0 1

    1 1 0

    0 1 1 1

    4110 - 1510 =

    2610

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 10

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 19

    Aritmetica binaria

    110 101 = 110 000 110 11110

    Prodotto Binario

    • Prodotto

    • Stesse regole della aritmetica decimale

    a b prodotto

    0 0 0

    0 1 0

    1 0 0

    1 1 1

    610 510 =

    3010

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 20

    • nei calcolatori la rappresentazione interna di un numero

    è finalizzata a rendere efficienti gli algoritmi per le

    operazioni

    • in genere è usata codifica a lunghezza fissa

    – l’insieme di numeri rappresentati è finito

    • sono usati sistemi posizionali

    RAPPRESENTAZIONE INTERNA DEI NUMERI

    ad eccezione dei numeri interi positivi (caso banale), è

    effettuata una trasformazione del numero da

    rappresentare in un altro numero “rappresentabile” ...

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 11

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 21

    • insieme X dei numeri da rappresentare

    – X è un intervallo di numeri interi o reali

    • insiemeY dei numeri rappresentati

    – Y è un intervallo finito

    • trasformazione di un numero xX in un numero yY

    – regola di trasformazione: y = R(x)

    • rappresentazione in cifre (sistema posizionale) di y

    • codifica in bit delle cifre

    Trasformazione e codifica

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 22

    Overflow e underflow

    • overflow: tentativo di rappresentare un numero esterno

    all’intervallo

    – se X è un intervallo di numeri interi allora Y deve avere

    almeno la stessa cardinalità

    • underflow: un numero reale x 0 viene rappresentato da y = 0

    – X è un intervallo di numeri reali, rappresentati da Y

    (intervallo finito) con un’approssimazione

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 12

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 23

    Overflow e underflow

    • Esempio di overflow:

    Numero di bit per la rappresentazione: N = 4

    1 1 1

    1110 + 0111 =

    10101

    riporti

    Somma Binaria

    Il risultato è: 0101

    che è ERRATO perché si ha overflow e si perde la cifra più

    significativa (quella in rosso)

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 24

    Parametri di un sistema di rappresentazione

    • intervallo numerico e tipo del numero x da rappresentare

    • regola di trasformazione y = R(x)

    • condizione di overflow

    • approssimazione e condizione di underflow (solo per i reali)

    NB: se la base della numerazione della trasformazione non è binaria, la codifica del numero in binario è indiretta ...

    • base di numerazione

    • codifica delle cifre in binario

    (se la base della numerazione è

    diversa da 2)

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 13

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 25

    • Y ed X coincidono,

    • Numeri rappresentabili: 0 y < M

    • M = bn

    • b è la base di numerazione

    – in pratica 2, 8, 16 … ma anche 10

    • rappresentazione ad n cifre :

    – Cn-1 Cn-2 ....C0 , dove 0 Ci < b

    • condizione di overflow: x M

    I numeri naturali

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 26

    Rappresentazione con Aritmetica decimale

    • Un numero viene rappresentato da d cifre decimali

    • L’intervallo rappresentato è: 0 y < 10d

    • per ogni cifra decimale si adotta una rappresentazione con k

    bit per cifra: il numero è rappresentato da k d bit

    – ad esempio, per d = 4, l’intervallo è [0, 9999);

    – adottando un sistema 8-4-2-1 (k = 4) un numero è rappresentato

    da 16 bit

    – il numero 8012 è rappresentato dalla stringa 1000 0000 0001 0010 (codifica indiretta di un numero in binario: l’alfabeto codice intermedio è

    costituito dalle codifica delle singole cifre decimali)

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 14

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 27

    • poiché si adotta la codifica a lunghezza fissa ad n cifre (k bit),

    – rappresentazioni estese a sinistra

    – esempi: n=5, b=10 25410 ==> 0025410

    n=5, b=2 410 ==> 001002

    Proprietà importanti

    il tentativo di rappresentare 32 … :

    0 0 1 0 0

    1 0 0 0 0 0

    … overflow

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 28

    Interi relativi: rappresentazione in segno e modulo ...

    • Intervallo: x (-M , M)

    • rappresentazione (tradizionale) in segno e modulo: s, y

    – s = sign(x) ------ y = |x|

    • condizione di overflow: |x| M

    • n cifre per rappresentare il suo modulo e una cifra che

    precede le altre per rappresentare il segno

    - in aritmetica binaria s = sign(x) è rappresentata da un bit:

    s = 1 se x < 0; s = 0 se x 0

    s y

    15 14 0

    x (-215, 215) intervallo aperto

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 15

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 29

    ... vantaggi e svantaggi

    • vantaggio: coincide con la nostra usuale rappresentazione

    • svantaggio: richiede il trattamento separato di segno e

    modulo: algoritmi aritmetici più pesanti ...

    ... nei calcolatori, per ovviare agli svantaggi dell’aritmetica

    della rappresentazione in segno e modulo, si adottano altre

    rappresentazioni ...

    es. complemento a uno

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 30

    Rappresentazione di reali: virgola fissa

    • virgola fissa (fixed point): rappresentazione di numeri con n

    cifre, nella quale la posizione della virgola (o punto decimale)

    che separa la parte intera da quella frazionaria è predeterminata:

    Es.: n cifre intere + m decimali

    Cn-1 Cn-2 .........C1 C0 . C-1 C-2...... C-m

    • nella rappresentazione dei numeri frazionari (|x| < 1) la virgola è

    in prima posizione: .078900

    - se la virgola occupa una posizione fissa, non necessita di essere

    rappresentata esplicitamente ...

  • Elementi di Informatica a.a. 2017/18 - Prof. G.A. Di Lucca

    Corso di Laurea in Ingegneria Energetica 16

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 31

    Rappresentazione di reali: virgola mobile

    • virgola mobile (floating point): un numero reale x è

    rappresentato mediante la coppia (M, E), dove:

    - x = M ·bE

    - M è un numero frazionario o intero detto mantissa

    - E è un numero intero detto esponente o caratteristica

    - b è la base della numerazione (binaria nei calcolatori)

    - è l’approssimazione della rappresentazione

    …. più ‘coppie’ Mantissa, Esponente

    Es.: dato il reale 13,78 (virgola fissa)

    • 1,378 ·101

    • 137,8 · 10-1

    • 0,1378 · 102 (normalizzata) è quella comunemente usata

    Elementi di Informatica

    Prof. G. A. Di Lucca - Univ. del Sannio 32

    Rappresentazione di reali: virgola mobile