Slide sul Codice BCD e Codici nella Domotica. La Pdf esplora il codice BCD e altri sistemi di codifica numerica, con un focus sulle loro applicazioni nella domotica, per studenti universitari di Informatica.
Mostra di più17 pagine


Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’AI.
CODICE BCD E CODICI NELLA DOMOTICA lezione 11Stringhe di bit
Non ridondanti Ridondanti possono essere Rivelatori errore i simboli sono Codice binario con due simboli Codici digitali pesati composti da Insieme di simboli che formano per uso 7 bit Unicode ASCII Industriale Alfabeto Parola Esteso 8 bit sotto codifiche UTF-8 UTF-16 UTF-32
BCD Aiken Quinario Biquinario 2 su 5IL CODICE BCD (Binary Codec Decimal) Il codice BCD è molto usato in elettronica, specialmente in circuiti digitali privi di microprocessore, perché facilita la visualizzazione di lunghe cifre sui display a sette segmenti. Infatti ad ogni display fisico corrisponde esattamente una cifra. Anche l'esecuzione di semplici calcoli aritmetici è più semplice da effettuarsi su cifre BCD per circuiti logici combinatori. Ad esempio i BIOS dei personal computer memorizzano la data e l'ora in BCD.
IL CODICE BCD (Binary Codec Decimal) BCD è il sistema di codifica che ci permette di rappresentare esclusivamente le dieci cifre decimali che vanno dallo 0 al 9, utilizzando 4 bit per rappresentare le cifre decimali in codice binario. Di tutte le possibili combinazioni ottenibili con 4 bit (24 = 16), solamente 10 vengono utilizzate; i restanti 6 caratteri (1010, 1011, 1100, 1101, 1110, 1111) non hanno significato quindi il codice BCD è un codice ridondante.
NUMERO DECIMALE NUMERO BCD peso > 8 4 2 1 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1
Esempio La codifica del numero decimale 27 con il codice BCD è la seguente: 27 0010 0111 cioè vengono codificate le singole cifre utilizzando 4 bit. Analogamente: . la codifica in codice BCD del numero (127), è (0001 0010 0111)BCD; · la codifica in codice BCD del numero (379), è (0011 0111 1001)BCD; . la codifica in codice BCD del numero (456) è (0100 0101 0110)2 BCD
*ATTENZIONE !! Non bisogna confondere il codice BCD con la codifica dei numeri nel sistema binario: · (27)10 = (11011)2= (0010 0111)BCD " (127)10 = (111111)2 = (0001 0010 0111)} BCD · (379)10 = (101111011)2= (0011 0111 1001), BCD · (456)10 = (111001000)2= (0100 0101 0110)BCD Dato che il codice BCD codifica singolarmente ogni cifra, non l'insieme delle cifre, solo le prime dieci configurazioni della codifica BCD coincidono con la codifica binaria.
IL CODICE BCD è un codice pesato Il codice BCD è un codice pesato: ogni elemento del carattere, partendo da destra (bit meno significativo, LSB) e procedendo verso sinistra (bit più significativo, MSB), ha peso rispettivamente 1, 2, 4, 8. Per esempio, (0101)BCD = 0 . 8 + 1 . 4 + 0 . 2 + 1 . 1 = (5) 10
REGOLE PER LA SOMMA E LA SOTTRAZIONE TRA NUMERI BINARI SOMMA 0+0=0 1+0= 1 0+1= 1 1+1= 0 (si riporta 1 a sinistra) 1+0= 1 SOTTRAZIONE 0-0=0 1-0= 1 0-1= 1 (ma deve chiedere in prestito un 1 al numero vicino) 1-1= 0
Esempio 1 5+ 0101 + 8 = 1000 = 13 1101 Con le normali regole dell'addizione il risultato è 1101, ma tale valore non esiste in BCD: è infatti tra i caratteri privi di significato, mentre in codice binario puro equivale al numero 13. Il valore 13 espresso in BCD è invece 0001 0011. La discordanza tra i due valori, dovuta alla ridondanza del codice, sta nel fatto che al risultato della somma, in BCD, occorre aggiungere (6) = (0110) ... ogni volta che viene superato il numero 9, in quanto il salto che occorre fare per evitare caratteri privi di significato è di 6 posizioni. Nell'operazione precedente, dato che la somma decimale supera il 10, è necessario correggere il risultato eseguendo la seguente operazione: 1101 + primo risultato 0110 = numero 6 0001 0011
Esempio somma con il codice BCD Esempio 2 Vediamo un secondo esempio in cui sommiamo 25 + 5 ottenendo 1010 che è una codifica non accettata: 25 + 0010 0101 + 0101 = 5 = 30 0010 1010 + 1010 non ammesso 0110 = sommo il numero 6 0011 0000 ottengo 30 SOMMA 0+0=0 1+0= 1 0+1= 1 1+1= 0 (si riporta 1 a sinistra) 1+0= 1
Esempio sottrazione con il BCD Lo stesso problema viene riscontrato nelle sottrazioni in BCD: è necessario correggere il risultato ogni volta che occorre un prestito dalla cifra precedente nello svolgimento della differenza decimale. ESEMPIO Effettuiamo ora la sottrazione 33 - 4: 33- 4= 0011 0011 - 0100 = 29 0010 1111 - 1111 non ammesso 0110 = sottraggo il numero 6 0010 1001 ottengo 29 SOTTRAZIONE 0-0=0 1-0= 1 0-1= 1 (ma deve chiedere in prestito un 1 al numero vicino) 1-1= 0
Packed BCD Nei personal computer i dati sono memorizzati a gruppi di 8 (byte) e dato che il codice BCD utilizza solo 4 bit abbiamo due alternative.
Complemento a N di un numero Ci sono alcune codifiche che, come il BCD, sono utilizzate nei sistemi automatici grazie alla loro semplicità di codifica/decodifica e alla possibilità di effettuare controlli di parità per verificare la correttezza dell'informazione. Prima di descrivere questo codice, ricordiamo il significato di complemento a N di un numero. Si dice complemento a N di un numero x il numero che si ottiene sottraendo da N il numero x. Per esempio, in decimale, il complemento a 9 del numero 3 è il numero 9 - 3 = 6; il complemento a 9 di 7 è 2: Cg[3] = C.[0011] = 1100 = (6). Cg[7] = C.[1101] = 0010 = (2) 10
IL CODICE AIKEN La principale caratteristica del codice Aiken è che è un codice autocomplementante a 9, cioè complementando (invertendo) i bit di un numero si ottiene il complemento a 9 del numero stesso. Nella tabella si possono vedere i numeri a coppie che sommati danno il numero 9: ciascuno dei due numeri che compone la coppia è la negazione dell'altro. Il codice Aiken è chiamato anche codice 2421 per il peso che hanno le diverse cifre nella formazione del numero: -le tre cifre meno significative hanno lo stesso peso del codice binario; -la cifra più significativa ha peso 2, invece di avere il peso 8 (23) del sistema posizionale.
NUMERO DECIMALE NUMERO AIKEN peso + 2 4 2 1 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 0 1 8 1 1 1 0 9 1 1 1 1
Esempio ESEMPIO Convertiamo in decimale i seguenti numeri. · 1011: sostituendo a ogni bit il corrispondente valore si ha 2 + 0 + 2 + 1 = 5; · 1110: sostituendo a ogni bit il corrispondente valore si ha 2 + 4 + 2 + 0 = 8; . 1111: essendo ogni bit al valore 1 otteniamo 2 + 4 + 2 + 1 = 9.
Il codice quinario è un codice a lunghezza fissa di 4 bit con pesi 5-4-2-1, in grado di codificare 5 + 4 + 2 + 1 + 1 = 13 simboli, cioè i numeri decimali a 1 a 12 oltre la codifica dello 0: si tratta quindi di un codice pesato e ridondante, dato che con 4 bit possiamo avere 24 = 16 differenti configurazioni e di queste se ne utilizzano solo 13.Con termine quinario si intende la presenza di una componente a cinque stati (quinaria). È stato impiegato nel UNIVAC Solid State a 4 bit (primo computer nato nel 1951) dove è stato aggiunto come bit più significativo un bit di parità dispari. Questa codifica potrebbe anche essere utilizzata in applicazioni particolari dove l'alfabeto sorgente è di 12 cifre (per esempio: i mesi dell'anno)
DECIMALE 5421 O 0000 1 0001 2 0010 3 0011 4 0100 5 1000 6 1001 7 1010 8 1011 9 1100 10 1101 11 1110 12 1111
studiare da pag. 137 a pag.140