34
Codifica delle cifre decimali Sono tu2 codici che lasciano 6 configurazioni inu8lizzate delle 16 a disposizione con 4 bit

Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Codifica  delle  cifre  decimali  

•  Sono  tu2  codici  che  lasciano  6  configurazioni  inu8lizzate  delle  16  a  disposizione  con  4  bit  

Page 2: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Codice  Gray  •  Codice  binario  a  lunghezza  fissa.  Non  adoAa  la  notazione  

posizionale  e  può  essere  di  lunghezze  diverse  a  seconda  delle  esigenze.  Con  n  bit  codifica  gli  interi  da  0  a  2n-­‐1.  

•  Per  il  modo  in  cui  viene  creato  si  dice  che  è  un  codice  riflesso.  Serve  a  codificare  un  numero  in  modo  che  le  stringhe  di  bit  che  rappresentano  numeri  consecu8vi  differiscano  per  un  solo  bit.  Il  codice  Gray  elimina  il  problema  di  transizioni  spurie  da  una  codifica  alla  successiva.  

•  Esempio:  usato  negli  encoder,  de2  anche  trasduAori  di  posizione  angolare,  (disposi8vi  eleAromeccanici  che  convertono  la  posizione  angolare  del  loro  asse  rotante  in  segnali  eleArici  numerici  digitali).  U8lizzano  questo  codice,  perché  il  passaggio  da  un  valore  al  successivo  o  precedente  comporta  la  commutazione  di  un  unico  circuito  (la  variazione  di  un  unico  bit),  eliminando  ogni  possibile  errore  dovuto  a  codifiche  binarie  intermedie.  

Page 3: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Codice  Gray  •  Dato  un  numero,  si  può  passare  dalla  sua  codifica  binaria  b=bm  bm-­‐1  …  b1  b0  alla  codifica  

Gray  g=gm  gm-­‐1  …  g1  g0  nel  modo  seguente:  

•     è  il  simbolo  di  somma  modulo  2  (EXOR  -­‐  or  esclusivo,  0          0  =1          1=  0  ,  1          0=  0        1=1)  •  Note:  

–  il  passaggio  da  binario  a  Gray  è  veloce,  mentre  il  viceversa  è  più  lento  –  anche  nel  passaggio  dall'ul8ma  alla  prima  parola  del  codice  cambia  solamente  un  bit.  

Page 4: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Codifica  di  informazioni  alfanumeriche  

•  Per  convenzione,  si  definisce  alfabeto  esterno  di  un  calcolatore  come  l’insieme  dei  caraAeri  che  è  in  grado  di  leggere  e  stampare  mediante  i  disposi8vi  di  I/O.  

•  Questo  alfabeto  deve  comprendere  almeno  64  caraAeri  :  –  le  26  leAere  dell’alfabeto  inglese  maiuscole  (A…Z)  –  le  10  cifre  decimali  (0…9)  –  28  caraAeri  vari  (spazio,  segni  di  punteggiatura,  etc.)  

•  In  genere  si  u8lizzano  codici  a  7  o  8  bit  

Page 5: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Codifica  di  informazioni  alfanumeriche  

•  EBCDIC  (Extended  Binary  Coded  Decimal  Interchange  Code):  8  bit.  Rappresenta  caraAeri  alfanumerici  e  speciali.  Personalizzato  per  le  varie  nazionalità  (necessita  di  conversioni  e  ormai  obsoleto).  usato  in  numerosi  sistemi  opera8vi  di  produzione  IBM.  Deriva  da  un  sistema  di  codifica  a  6  bit  u8lizzata  nelle  schede  perforate.  

•  UNICODE:  rappresenta  tu2  i  caraAeri  della  lingua  parlata  dall’uomo,  in  maniera  indipendente  dalla  lingua,  dalla  piaAaforma  informa8ca  e  dal  programma  u8lizza8  (usato  da  Java  e  adoAato  da  HP,  IBM,  Microsoj,  Oracle,  …).  Era  stato  originariamente  pensato  come  una  codifica  a  16  bit  (quaAro  cifre  esadecimali)  che  dava  la  possibilità  di  codificare  65.536  caraAeri.  Ora  prevede  una  codifica  a  fino  21  bit  e  supporta  un  repertorio  di  codici  numerici  che  possono  rappresentare  circa  un  milione  di  caraAeri.  E’  supportato  dai  moderni  standard  della  programmazione  e  del  markup  come  XML,  JAVA,  JavaScript,  ecc.,  e  da  vari  sistemi  opera8vi.  

Page 6: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Codice  ASCII  •  ASCII  American  Standard  Code  for  Informa8on  Interchange  •  Ne  esistono  due  versioni:  

–  7  bit  →  128  simboli;  in  questo  caso  l’oAavo  bit  è  usato  a  volte  come  ridondanza  (H=2)  per  la  rilevazione  di  un  errore  (bit  di  parità)  

–  8  bit  →  256  simboli  (ASCII  esteso);  codifica  anche  leAere  accentate  e  caraAeri  grafici;  l’estensione  non  è  standardizzata  e  quindi  fra  i  128  simboli  aggiun8  può  succedere  che  alla  stessa  codifica  corrispondano  simboli  diversi  

•  È  il  codice  più  usato  per  la  codifica  dei  caraAeri  alfanumerici  (leAere  e  cifre)  oltre  che  per  simboli  di  interpunzione  e  vari.  Ad  esempio:  .  ;  :  ,  (  )  [  ]  {  }  /  \  <  >  =  ?  !  ~  |  #  $  %  &  *  ^  -­‐  @  ecc.  

Page 7: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

CaraAeri  di  controllo  •  Un  caraAere  di  controllo  è  un  caraAere  non  visualizzabile  il  cui  codice  in  

un  set  di  caraAeri  non  rappresenta  in  sé  un  simbolo  scriAo.  •  Tu2  i  caraAeri  nella  tavola  ASCII  con  codice  <32  fanno  parte  di  questa  

categoria.  •  Lo  standard  Unicode  ha  aggiunto  mol8  nuovi  caraAeri  non  visualizzabili.  •  I  caraAeri  di  controllo  nella  tavola  ASCII  ancora  d'uso  comune  

comprendono  –  7  (bell),  provoca  l'emissione  di  un  segnale  sonoro  da  parte  del  terminale  

ricevente  –  8  (backspace),  u8lizzato  per  cancellare  l'ul8mo  caraAere  visualizzato,  di  solito  

quello  a  immediatamente  a  sinistra  del  cursore  –  9  (horizontal  tab),  tabulatore  orizzontale  –  10  (line  feed),  u8lizzato  per  terminare  le  linee  di  testo  nei  sistemi  UNIX  e  le  

loro  varian8.  –  12  (form  feed),  per  terminare  la  pagina  sulla  stampante  e  avanzare  al  modulo  

successivo  –  13  (carriage  return),  ritorno  a  capo,  u8lizzato  per  terminare  le  linee  di  testo  

(ad  esempio  nel  S.O.  DOS).  –  27  (escape).  

Page 8: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit
Page 9: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Esercizio    

•  Quel  è  la  distanza  fra  le  seguen8  due  codifiche?  

00101000    00011001  

Page 10: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Esercizio    

•  Quel  è  la  distanza  fra  le  seguen8  due  codifiche?  

00101000    00011001    Distanza  =  3  

Page 11: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Esercizio    •  Per  codificare  i  simboli  D,F,I  si  u8lizza  il  seguente  codice  a  5  bit  

D  à  00000  F  à  11100  I  à  10011  •  Errori  di  trasmissione  possono  dare  luogo  alla  modifica  di  uno  o  più  bit  

1.  Quan8  errori  è  in  grado  di  rivelare  il  codice  in  generale?  

2.  Quan8  errore  è  in  grado  di  correggere  in  generale?  

Page 12: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Soluzione    

•  La  distanza  è  d12=3  d23=4  d13=3  La  distanza  del  codice  è  pari  a  3  Quindi:  1.  Errori  rivela8:  d≥e+1  quindi  emax=2  2.  Errori  corre2:  d  ≥2e+1  quindi  emax=(3-­‐1)/2=1  

Page 13: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Esercizio    

•  Da8  i  codici  preceden8  •  Se  viene  ricevuta  la  sequenza  10100:          – Cosa  è  possibile  sapere  su  eventuali  modifiche  di  bit?    

– Si  supponga  di  decodificare  la  sequenza  con  il  simbolo  corrispondente  alla  codifica  che  da  essa  ha  distanza  minima:  soAo  quali  ipotesi  tale  decodifica  è  sicuramente  correAa?  

Page 14: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Soluzione    •  Ricezione  di  10100    D          00000    dist  =  2                10100    F    11100    dist  =  1        10100    

I    10011    dist  =  3        10100        

•  Di  sicuro  c’è  stato  almeno  un  errore  (la  sequenza  ricevuta  non  corrisponde  a  nessuna  delle  tre  codifiche)  

•  La  codifica  più  vicina  è  quella  corrispondente  a  “F”:  ipo8zzabile  (ma  non  certa)  la  trasmissione  di  11100  con  la  modifica  del  secondo  bit  (a  par8re  dal  più  significa8vo).  Tale  decodifica  è  in  ogni  caso  correAa  se  è  possibile  sapere  che  le  modifiche  avvenute  sono  al  più  una  (non  c’è  modo  partendo  da  “D”  o  “I”  di  oAenere  10100).  

Page 15: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Osservazioni    •  Il  codice  è  in  grado  di  rivelare  al  più  due  errori,    ma  in  generale  non  

è  in  grado  di  correggerli:  se  possono  essere  commessi  fino  a  due  errori,  non  sono  sicuro  in  generale  sulla  codifica  originaria  

•  ES:  trasmeAo  D      00000    

•  alterazione  di  due  bit      11000    

•  rivelo  l’errore  (nessuna  codifica  corrispondente)  ma  si  ha  che    •  F:      11100    •  Seq_ric    11000    dist  =1    •  Se  decodifico  con  “F”  commeAo  un  errore!    •  NB:  se  decodifico  con  “D”  allora  lo  commeAo  quando  viene                                                              

trasmesso  “F”  con  un  solo  errore  sul  terzo  bit!  

Page 16: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Esercizio    •  Si  consideri  il  codice  a  3  valori  originari      1  à  000000      2  à  000001      3  à  111111    

1.  Trovare  quan8  errori  può  correggere  e  rivelare  in  generale.    

2.  Si  supponga  di  ricevere  la  sequenza  001111.      Assumendo  che  possano  essere  sta8  compiu8  al  più    2  errori,  è  possibile  decodificare  correAamente  la  sequenza?      Come  si  gius8fica  la  risposta  in  relazione  al  risultato  trovato  nel  punto  a)?  

Page 17: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Soluzione    

1.  Risulta:      d12  =  1      d23  =  5      d13  =  6  quindi  la  distanza  del  codice  è  1    

       ⇒  il  codice  non  può  (in  generale)  rivelare  né  tantomeno  correggere  alcun  errore  [e  rivela8:    d  ≥  e+1,  quindi  con  e=1  serve  d  ≥2]  

Page 18: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Soluzione    2.  Ricevo  001111,  mentre  avevo:    1  à    000000            dist1  =  4        001111    

2  à    000001            dist2  =  3        001111    

3  à    111111            dist3  =  2        001111      In  questo  caso  posso  decodificare  001111  con  il  valore  “3”.  Se  sono  sta8  commessi  al  più  due  errori,  sono  sicuro  che  la  decodifica  è  correAa,  perché:  

 dist1  =  4  >  2          [000000  non  può  essere  modificato  in  001111]      dist2  =  3  >  2          [000001  non  può  essere  modificato  in  001111]  

Page 19: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Osservazioni    •  Come  mai  posso  correggere  due  errori  anche  se  (cfr.  punto  1)  il  codice  ha  distanza  1?    

•  La  distanza  del  codice  si  riferisce  al  “caso  peggiore”  (distanza  minima)      

•  Quindi  le  rela8ve  formule  si  usano  per  verificare  le  proprietà  del  codice  di  rilevazione  e  correzione  di  errori  in  ogni  caso,  ovvero  per  qualunque  simbolo  rappresentato  e  per  qualunque  posizione  degli  errori      

•  Per  esempio,  nel  caso  venga  trasmesso  1  (codificato  con      000000),  è  sufficiente  un  errore  sull’ul8mo  bit  per  oAenere  000001,  che  è  pari  alla  codifica  di  2:  in  tal  caso  l’errore  non  verrebbe  neppure  rivelato  

Page 20: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

ALGEBRA  DI  BOOLE  

Page 21: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Circui8  logici  e  algebra  booleana  •  La  logica  del  computer  è  cos8tuita  da  circui8  logici.  

•  Circui8  logici  combinatori:  le  uscite  dipendono  solo  dagli  ingressi  presen8  in  quell'istante.  (Nei  circui8  logici  sequenziali  dipendono  anche  dagli  sta8  preceden8  )  

•  Poiché  un  circuito  logico  combinatorio  non  con8ene  memoria,  lo  si  può  specificare  completamente  definendo  la  funzione  logica  mediante  equazioni  logiche:  ciò  è  possibile  u8lizzando  l'algebra  Booleana.  

Page 22: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Algebra  Booleana  (George  Boole  (1815-­‐1864))  

•  Le  operazioni  aritme8che  e  logiche  possono  essere  implementate  aAraverso  l’algebra  di  Boole.  

•  Il  simbolo  “::=“  significa  “è  definito  /  composto  da”  •  Il  simbolo  “|”  significa  “oppure”  •  L’algebra  di  Boole  è  definita  su  due  elemen8  (vero  |  falso,  0  |  1)  

•  Costante  booleana  ::=  1  |  0  •  Operatore  booleano  ::=  NOT  |  AND  |  OR  •  Una  variabile  booleana  può  assumere  solo  uno  dei  due  valori  0  o  1  

Page 23: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Operatori  Booleani:  NOT  

•  NOT  (simbolo        ):  •  Simbolo  grafico:    •  Proprietà:    

Page 24: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Operatori  Booleani:  AND  

•  AND  (prodoAo  logico)          Proprietà:  •  Simbolo:  *  oppure  ·∙  •  Simbolo  grafico:    

Page 25: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Operatori  Booleani:  OR  

•  OR  (somma  logica)            Proprietà:  •  Simbolo:  +  •  Simbolo  grafico:    

Page 26: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Proprietà  algebra  booleana  •  Proprietà  di  iden8tà:  

–  A  +  0  =  A  e  A  ·∙  1  =  A  •  Proprietà  di  assorbimento:  

–  A  +  1  =  1  e  A  ·∙  0  =  0  •  Proprietà  dell'inverso:  

–  A  +  not(A)  =  1  e  A  ·∙not(  A)=  0  •  Proprietà  commuta8va:  

–  A  +  B  =  B  +  A  e  A  ·∙  B  =  B  ·∙  A  •  Proprietà  associa8va:  

–  A  +  (B  +  C)  =  (A  +  B)  +  C  e  A  ·∙  (B  ·∙  C)  =  (A  ·∙  B)  ·∙  C  •  Proprietà  distribu8va:  

–  A  ·∙  (B  +  C)  =  (A  ·∙  B)  +  (A  ·∙  C)  e  A  +  (B  ·∙  C)  =  (A  +  B)  ·∙  (A  +  C)  •  leggi  di  DeMorgan:  

–  NOT(A  ·∙  B)  =  NOTA  +  NOTB  –  NOT(A  +  B)  =  NOTA  ·∙  NOTB  

Page 27: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Operatori  universali  

•  Si  ricavano  da  una  combinazione  degli  operatori  di  base.  

Page 28: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

OR  esclusivo  (EXOR)  

•  L’operatore  EXclusive-­‐OR  o  EXOR  •  Simbolo  grafico:  

•  Può  essere  ricavato  usando  i  3  operatori  elementari:  

Page 29: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

EXOR  

•  L’EXOR  è  anche  deAo  funzione  DISPARITÀ,  perché  è  vero  solo  quando  un  numero  dispari  dei  suoi  argomen8  è  vero  

•  Proprietà:  

Page 30: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Esercizio    

•  Si  dimostri  se  la  seguente  espressione  Booleana  e  un’eguaglianza  o  meno:  

 

Page 31: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Soluzione    

Page 32: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Esercizio    

•  Si  semplifichi  la  seguente  funzione  Booleana:  

Page 33: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Soluzione    

Page 34: Codificadelle(cifre(decimali( · Codificadelle(cifre(decimali(• Sono(tu2(codici(che(lasciano(6(configurazioni(inu8lizzate(delle(16(adisposizione(con(4(bit

Esercizio    

•  Data  la  seguente  funzione  booleana:  

•  Calcolare  i  valori  sull’uscita  y  genera8  dai  valori  111  e  110  applica8  agli  ingressi  abc