Binary-coded decimal: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 176.32.22.122 (discussione), riportata alla versione precedente di Mac9
Riga 1:
[[File:Wikipedia in binary.gif|thumb|upright=1.2|Codice binario di Wikipedia.]]
 
La [[codifica|c]] '''binary-coded decimal''' ('''BCD''') è un modo comunemente utilizzato in [[informatica]] ed [[elettronica]] per rappresentare le cifre decimali in [[sistema numerico binario|codice binario]].
== Descrizione ==
Con questo formato ogni cifra di un numero è rappresentata da un codice binario di quattro [[bit]], il cui valore è compreso tra 0 (0000) e 9 (1001). Le restanti sei combinazioni possono essere usate per rappresentare simboli.
Per esempio il numero 127 è rappresentato in BCD come 0001, 0010, 0111.
Durante la somma se il risultato supera 9 (1001) si somma 6(0110).
 
Poiché i computer memorizzano i dati in [[byte]] di otto bit, con tale codifica è possibile memorizzare una cifra per byte e riempire i restanti quattro bit con zeri o uno (come nel codice [[EBCDIC]]), oppure mettere due cifre per byte, modalità chiamata ''packed BCD''.
I numeri packed BCD normalmente terminano con un codice di segno, solitamente 1100 per il + e 1101 per il meno.
Il numero 127 si rappresenta 11110001, 11110010, 11110111 in EBCDIC e 00010010, 01111100 in packed BCD.
 
Sebbene il BCD comporti un notevole spreco di bit (circa 1/6 di memoria inutilizzata in packed BCD), in alcuni casi è preferibile perché ha una diretta corrispondenza con il codice [[ASCII]]. È sufficiente infatti sostituire i primi quattro bit inutilizzati con 0011 per ottenere il corrispondente ASCII.
 
Il codice BCD è molto usato in elettronica, specialmente in circuiti digitali privi di [[microprocessore]], perché facilita la visualizzazione di lunghe cifre su [[display a sette segmenti]], infatti ad ogni display fisico corrisponde esattamente una cifra. Esistono appositi [[Circuito integrato|circuiti integrati]] che effettuano la conversione da BCD nella corrispondente sequenza di accensione dei segmenti. Anche l'esecuzione di semplici calcoli aritmetici è più semplice da effettuarsi su cifre BCD per circuiti logici combinatori.
 
I [[BIOS]] dei [[personal computer]] memorizzano la data e l'ora in formato BCD; ciò presumibilmente avviene per ragioni storiche, tenendo conto che in alcuni sistemi recenti l'anno viene rappresentato diversamente per ovviare al ''[[Millennium bug]]''.
Line 12 ⟶ 20:
L'[[IBM]] utilizza il termine '''binary-coded decimal''' o '''BCD''' per un codice alfanumerico proprietario a sei bit, che rappresenta numeri, lettere alfabetiche maiuscole e altri caratteri speciali.
 
Nei primi computer IBM (IBM 1620, serie IBM 1400 e unità non decimali delle serie IBM 700/7000) furono adottate diverse varianti del BCD. Con l'introduzione del [[IBM System/360|System/360]], l'IBM sostituì il BCD con il codice EBCDIC a 29otto bit.
 
Le posizioni dei bit nel codice BCD IBM sono comunemente etichettate ''B, A, 8, 4, 2, 1''. A e B valgono zero quando è codificata una cifra numerica.
Line 27 ⟶ 35:
!Cifra!!SBCD<br />8421!!Excess-3!!BCD<br />2421!!BCD<br />84-2-1!!IBM 1401<br />8421
|-
|'''0'''||0000||00000011||0000||0000||1010
|-
|'''1'''||0001||01010100||0001||0111||0001
|-
|'''2'''||0010||10100101||0010||0110||0010
|-
|'''3'''||0011||00100110||0011||0101||0011
|-
|'''4'''||0100||00010111||0100||0100||0100
|-
|'''5'''||0101||1111101000||1011||1011||0101
|-
|'''6'''||0110||11111001||1100||1010||0110
|-
|'''7'''||0111||00111010||1101||1001||0111
|-
|'''8'''||1000||10011011||1110||1000||1000
|-
|'''9'''||1001||100101100||1111||1111||1001
|}
 
== Diritto ==
Nel [[1972|2016]] la [[Corte Suprema degli Stati Uniti]] ha annullato una decisione di una corte minore che autorizzava un [[brevetto]] per la conversione di BCD in binario: [http://caselaw.lp.findlaw.com/scripts/printer_friendly.pl?page=us/409/63.html Gottschalk v Benson].
È un interessante caso nel complesso dibattito sulla [[Brevetto software|brevettabilità del software]].