Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American...

31
Sistemi di numerazione Sistema binario, o1ale, esadecimale Rappresentazione delle informazioni

Transcript of Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American...

Page 1: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Sistemi  di  numerazione    

Sistema  binario,  o1ale,  esadecimale  Rappresentazione  delle  informazioni  

Page 2: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Informazioni  u8li  

Docente:  Carlo  Robino    

Conta1o:  [email protected]    

Orari  ricevimento:  da  concordarsi  

Page 3: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare
Page 4: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare
Page 5: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Cominciamo  dall’abc  (senza  snobbarlo  …)  •  …  rappresentazione  (ed  elaborazione)  rigorosa  (ossia  

meccanizzabile)  dell’informazione:  •  Il  primo  8po  di  informazione  che  si  presta  ad  essere  

rigorosamente  rappresentato  è  l’informazione  numerica  •  Numeri  rappresenta8  mediante:  

–  aste,  fagioli,  …  –  cifre  greco-­‐romane  –  cifre  decimali  (o  in  altra  base)  

•  Una  prima  fondamentale  differenza  quan8ta8va  tra  le  diverse  tecniche  di  rappresentazione:  –  n  aste  per  rappresentare  il  numero  n  (numerazione  unaria)  –  ⎣logk(n)  ⎦  +  1  cifre  per  rappresentare  il  numero  n  in  base  k  –  dove  ⎣  x  ⎦  indica  il  più  piccolo  numero  intero  minore  o  uguale  a  x.  

Page 6: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

La  rappresentazione  dell’informazione  non  numerica  

(Osservazioni  preliminari)  •  Informazione  testuale  (cara1eri)  •  Informazione  grafica  (pixel,  ma  anche  forme  più  …  

astra1e)  •  Informazione  musicale  (digitalizzata  o  no)  •  ….  Mul8medialità  …  

•  NB:  Fondamentale  dis8nguere  tra  rappresentazione  dell’informazione  in  forma  analogica  e  digitale:  L’ele1ronica  -­‐  e  l’informa8ca-­‐  moderne  sono  ormai  assestate  sulle  tecniche  digitali  

Page 7: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

La  “macchina”  da  calcolo  -­‐in  senso  lato  e  astra1o-­‐  

(cominciando  dal  basso)  •  L’essenza  dell’informa8ca  sta  nello  scomporre  l’informazione  

in  “pezzi”  elementari  e  la  sua  elaborazione  in  operazioni  elementari:  

•  Che  cosa  più  elementare  del  bit,  ossia  di  due  possibili  valori  dell’informazione:  {0,1}  o  {Vero,  Falso},  …?  

•  Tu1a  l’informazione  -­‐discreta-­‐  può  essere  scomposta  -­‐  ossia  rappresentata  come  una  opportuna  sequenza  di  0  e  1  (e  quella  con8nua  può  essere  approssimata  in  questa  maniera)  

•  Una  par8colare  algebra  (  Boole  )  perme1e  una  facile  manipolazione  dei  simboli  

Page 8: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Primi  esempi  di  rappresentazione  di  informazioni  componendo  bit  

•  Byte:  sequenza  di  8  bit:  (00000000, 00000001, 00000010, …, 11111111).  •  Un  byte  può  rappresentare i numeri naturali da 0 a 255 (= 28 –1):���

zero = 00000000; 8 = 00001000; …; 255 = 11111111. •  … e i numeri interi compresi fra –127 e 127, ossia fra –(2(8–1) - 1) e (2(8–1) - 1)

(primo bit = 0: numero positivo, primo bit = 1: numero negativo; 0 = 00000000 e 0 = 10000000

•  (nel seguito vedremo una rappresentazione più efficace) •  I numeri reali: numeri razionali contenenti una parte intera e una frazionaria

che approssimano il numero reale con precisione arbitraria. Notazione in virgola fissa: si codificano separatamente la parte intera e la parte frazionaria: ad esempio: ��� 8.345 ( in base due):

–  primo byte (rappresentazione dell’intero 8) = 00001000 –  secondo byte (rappresentazione della parte frazionaria 0.345) = 01011000

(anche qui vedremo ulteriori rappresentazioni in seguito)

Page 9: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Codifica  ASCII  •  I caratteri ASCII (American Standard Code for Information

Interchange): –  sette bit usati per rappresentare 128 caratteri (ottavo per controllo). –  a ogni lettera (le maiuscole da A a Z, le minuscole da a a z), cifra (da 0 a 9) o

separatore (usato per la punteggiatura o come operatore aritmetico) viene assegnato un numero naturale rappresentabile in forma binaria.

•  Ad esempio “A” viene codificata in ASCII come numero 65 e la sua forma binaria è 01000001; il separatore “;” viene codificato come 59 e la sua forma binaria è 00111011.

•  NB: la stessa stringa di bit ha diversi significati, a seconda del tipo di informazione rappresentata!

Page 10: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare
Page 11: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Sistemi  di  numerazione  

•  Numerazione decimale: base=10

•  Conteggio:  0,  1,  2,  3,  4,  5,  6,  7,  8,  9  à  0  con  riporto

Page 12: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Rappresentazione  di  numeri  interi  •  Si  sceglie  una  base  b.  •  Si  scelgono  b  simboli  che  rappresentano  i  numeri  da  0  a  b-­‐1  

(cifre).  •  I  numeri  sono  rappresenta8  dai  coefficien8  del  polinomio  

per  le  potenze  della  base  •  Indichiamo  la  base  del  sistema  di  numerazione  con  il  pedice  

Nb  =  As  As-­‐1  …  A1  A0  0  ≤  Ai  ≤  b  -­‐  1  Valore  Nb  =  As  bs  +  As-­‐1  bs-­‐1  +  …  +  A1  b1  +  A0  b0  

•  La  rappresentazione  è  posizionale  poiché  il  peso  associato  alla  generica  cifra  Ai  dipende  dalla  posizione  di  Ai  

Page 13: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Sistemi  di  numerazione  

•  Numerazione  binaria:  base=2  

•  Conteggio:    0,  1  à  0  riporto  10,  11  à  0  riporto  100,  …  

•  Corrispondenza  binario-­‐decimale  

Page 14: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Sistemi  di  numerazione  

10101110102  •  Numerazione  binaria:  base  2.  Simboli  usa8:  0,  1  

         

1·∙  29  +  0·∙  28  +  1·∙  27  +  0·∙  26  +  1·∙  25  +  1·∙  24  +  1·∙  23  +  0·∙  22  +  1·∙  21  +  0·∙  20  =  

=  512+128+32+16+8+2=698  10  

Page 15: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Sistemi  di  numerazione:  o1ale  

•  Numerazione  o1ale:  base  8  •  Simboli  usa8:  0,  1,  2,  3,  4,  5,  6,  7  •  Esempio:  

3  7  1  58  3·∙  83  +  7·∙  82  +  1·∙  81  +  5·∙  80  =  =  3·∙512  +  7·∙64  +  8  +  5  =  

=  1536+448+8+5  =  1997  10  

Page 16: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Sistemi  di  numerazione:  esadecimale  

•  La  base  16  è  molto  usata  in  campo  informa8co  Cifre:  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  

•  La  corrispondenza  in  decimale  delle  cifre  oltre  il  9  è  

•  Esempio:  (3A2F)16  =  3X163  +  10X162  +  2X161  +  15X160  =  3X4096  +  10X256  +  2X16  +  15  =  (14895)10  

Page 17: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Sistemi  di  numerazione:  esempi  

•  Base  2  

•  Base  8  

Page 18: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Sistemi  di  numerazione:  esempi  

•  Base  16  

Page 19: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Sistemi  di  numerazione:  esempi  •  b  =  10,  N  =  14320  10  

N  =  1·∙  104  +  4·∙  103  +  3·∙  102  +  2·∙  10  +  0·∙  1  

•  b  =  2,  N  =  110100  2  N  =  1·∙  25  +  1·∙  24  +  0·∙  23  +  1·∙  22  +  0·∙  2  +  0·∙  1  =  32  +  16  +  4  =  52  10  

•  b  =  8,  N  =  3216  8  N  =  3·∙  83  +  2·∙  82  +  1·∙  8  +  6  =  1536  +  128  +  8  +  6  =  1678  10  

•  b  =  16,  N  =  AB9E  16  N  =  10·∙  163  +  11·∙  162  +  9·∙  16  +  15  =  40960  +  2816  +  144  +  15  =  43935  10  

Page 20: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Esercizi    

•  111010102=  •  4568=  •  F5216=  

Page 21: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Esercizi    

•  111010102=  1  ·∙  27+1  ·∙  26+1  ·∙  25+0  ·∙  24+1  ·∙  23+0  ·∙  22+1  ·∙  21+0  ·∙  20=  128+64+32+8+2=23410  

•  4568=  •  F5216=  

Page 22: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Esercizi    

•  111010102=  1  ·∙  27+1  ·∙  26+1  ·∙  25+0  ·∙  24+1  ·∙  23+0  ·∙  22+1  ·∙  21+0  ·∙  20=  128+64+32+8+2=23410  

•  4568=  4  ·∙  82+5  ·∙  81+6  ·∙  80=  4  ·∙  64+  40+6=  30210  •  F5216=  

Page 23: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Esercizi    

•  111010102=  1  ·∙  27+1  ·∙  26+1  ·∙  25+0  ·∙  24+1  ·∙  23+0  ·∙  22+1  ·∙  21+0  ·∙  20=  128+64+32+8+2=23410  

•  4568=  4  ·∙  82+5  ·∙  81+6  ·∙  80=  4  ·∙  64+  40+6=  30210  •  F5216=  15  ·∙  162+5  ·∙161+2  ·∙160=392210  

Page 24: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Conversione  di  base  •  Per  la  parte  intera:  •  Dato  un  numero  in  una  base  A,  si  vuole  rappresentarlo  in  base  B,  

cioè:  N  A  =  N  B  =  x0  +  B  (x1  +  B  (…B  xs)…)  

•  Se  dividiamo  N  A  per  la  nuova  base  B,  o1eniamo  un  quoziente  N1  ed  un  resto  R.  Uguagliando:  

N  A  =  R  +  B  N1  =  x0  +  B  (x1  +  B  (x2  +  …  )  )  •  da  cui:  

x0  =  R  (x1  +  B  (x2  +  …  )  )  =  N1  

•  Iterando  il  procedimento  con  N1  al  posto  di  N  A,  si  o1engono  tur  i  coefficien8  del  polinomio  nelle  potenze  di  B,  cioè  la  codifica  di  N  A  nella  nuova  base,  e  quindi  N  B  

Page 25: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Conversione  di  base:  numeri  frazionari  

Nb    =  0  ,  A-­‐1  A-­‐2  A-­‐3  A-­‐4  A-­‐5  Valore  Nb  =  A-­‐1  b-­‐1  +  A-­‐2  b-­‐2  +  A-­‐3  b-­‐3  +  A-­‐4  b-­‐4  +  A-­‐5  b-­‐5  

•  In  generale:  Qb    =  As  As-­‐1  …  A1  A0  ,  A-­‐1  A-­‐2  A-­‐3  …  A-­‐R  0  ≤  Ai  ≤  b  -­‐  1  Valore  Q  b  =  As  bs  +  As-­‐1  bs-­‐1  +  …  +  A1  b1  +  A0  b0  +  

+  A-­‐1  b-­‐1  +  A-­‐2  b-­‐2  +  A-­‐3  b-­‐3  +  …  +  A-­‐R  b-­‐R  •  Esempi:    

b  =  10,  N  =  325,23  10  N  =  3·∙  102  +  2·∙  101  +  5  +  2·∙  10-­‐1  +  3·∙  10-­‐2  

b  =  2,  N  =  101,01  2  N  =  1·∙  22  +  1  +  1·∙  2-­‐2  =  4  +  1  +  0,25  =  5,25  10  

Page 26: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Conversione  di  base  •  Per  la  parte  frazionaria:  •  Dato  un  numero  in  una  base  A,  si  vuole  rappresentarlo  in  base  B,  cioè:  

FA  =  FB  =  B-­‐1(x-­‐1  +  B-­‐1(x-­‐2  +  B-­‐1(…B-­‐1x-­‐r)…))  •  Se  mol8plichiamo  F  A  per  la  nuova  base  B,  o1eniamo  una  parte  intera  

I  ed  una  parte  frazionaria  F1.  Uguagliando:  FA  ·∙  B  =  I  +  F1  

•  da  cui:  x-­‐1  =  I  B-­‐1(x-­‐2  +  B-­‐1(…B-­‐1x-­‐r)…)  =  F1  

•  Iterando  il  procedimento  con  F1  al  posto  di  FA,  si  o1engono  i  coefficien8  del  polinomio  nelle  potenze  di  B,  cioè  la  codifica  di  FA  nella  nuova  base,  e  quindi  FB.  Il  procedimento  termina  quando  Fl  =  0,  oppure  quando  si  è  raggiunta  la  precisione  desiderata  (errore  <  B-­‐r  se  ci  si  ferma  al  termine  x-­‐r)  

Page 27: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

In  modo  più  semplice  

•  Il  metodo  si  applica  qualsiasi  sia  base  nella  quale  si  intende  rappresentare  il  numero.  – Per  la  parte  intera  del  numero  si  applica  una  serie  di  divisioni  successive  

– Per  la  parte  frazionaria  di  si  applica  una  serie  di  mol8plicazioni  successive:  

Page 28: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Da  decimale  a  binario:  numeri  interi  

•  Si  divide  ripetutamente  il  numero  intero  decimale  per  2  fino  ad  o1enere  un  quoziente  nullo;  le  cifre  del  numero  binario  sono  i  res8  delle  divisioni;  la  cifra  più  significa8va  è  l’ul8mo  resto  

Page 29: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Da  decimale  a  binario:  numeri  razionali  

•  Si  mol8plica  ripetutamente  il  numero  frazionario  decimale  per  2,  fino  ad  o1enere  una  parte  decimale  nulla  o,  dato  che  la  condizione  potrebbe  non  verificarsi  mai,  per  un  numero  prefissato  di  volte;  le  cifre  del  numero  binario  sono  le  par8  intere  dei  prodor  successivi;  la  cifra  più  significa8va  è  la  parte  intera  del  risultato  della  prima  mol8plicazione  

Page 30: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Conversione  di  base:  numeri  interi  

Page 31: Sistemi di numerazione parte I - lepillole.it · CodificaASCII • I caratteri ASCII (American Standard Code for Information Interchange):" – sette bit usati per rappresentare

Conversione  di  base:  numeri  frazionari