Binary-coded decimal: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
SashatoBot (discussione | contributi)
m Eliminato il grassetto da varie parole
 
(44 versioni intermedie di 31 utenti non mostrate)
Riga 1:
{{F|elettronica|arg2=informatica|ottobre 2017}}
La [[codifica]] '''Binary-coded decimal''' ('''BCD''') è un modo comunemente utilizzato in [[informatica]] ed [[elettronica]] per rappresentare le cifre decimali in [[sistema numerico binario|codice binario]].
[[File:Wikipedia in binary.gif|thumb|upright=1.2|Codice binario di Wikipedia.]]
 
La [[codifica]] '''Binarybinary-coded decimal''' ('''BCD''') è un modo comunemente utilizzato in [[informatica]] ed [[elettronica]] per rappresentare le cifre decimali in [[sistema numerico binario|codice binario]], che sfrutta in parte la convertibilità da [[base 2]] a [[base 16]].
In 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.
 
In questo formato, ogni cifra di un numero decimale è rappresentata come per un numero a base 16 da un codice binario di quattro [[bit]], il cui valore del quale è compreso tra 0 (0000) e 9 (1001). Le restanti sei combinazionicifre della base 16 possono essere usate per rappresentare simboli.
Per esempio il numero 127 è rappresentato in BCD come 0001, 0010, 0111.
 
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 sostituireaggiungere, iin primitesta ai quattro bit inutilizzati con, 0011 per ottenere il corrispondente ASCII.
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.
La cifra 127 si rappresenta 11110001, 11110010, 11110111 in EBCDIC e 00010010, 01111100 in packed BCD.
 
Nell'addizione, se il risultato supera 9 (1001), si somma 6(0110) cioè la quantità di codifiche inutilizzate (da 1010 a 1111).
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.
 
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 iniziali con zeri o uno (come nel codice [[EBCDIC]]), oppure mettere due cifre per byte, modalità chiamata ''packed BCD''.
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 numeri in notazione packed BCD normalmente terminano con un codice di segno, solitamente 1100 per il + e 1101 per il meno.
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]]''.
LaIl cifranumero 127 si rappresenta 11110001, 11110010, 11110111 in EBCDIC e 00010010, 01111100 in packed BCD.
 
Il codice BCD è molto usato in elettronica, specialmente in circuiti digitali privi di [[microprocessore]], perché facilita la visualizzazione di lunghe cifre susui [[display a sette segmenti]],. infattiInfatti 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.
==L'IBM e il BCD==
 
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.
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]]''.
 
== L'IBM e il BCD ==
L'[[IBM]] utilizza il termine '''binary-coded decimal''' o '''BCD''' per un codice alfanumerico proprietario a sei bit (base 64: 2^6), 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 otto bit.
Line 21 ⟶ 27:
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.
 
Nel BCD 1062 caratteri alfabetici erano codificati usando i bit pari in coppie di bit, ed usando i bit dispari per le cifre.
Un apposito [[hardware]] convertiva tra questa codifica interna e in codice BCD a sei bit usato all'esterno.
 
== Riassumendo ==
La seguente tabella riassume la codifica delle cifre da zero a nove di alcuni sistemi BCD.
 
Per chiarezza il BCD standard descritto all'inizio dell'articolo è chiamato '''Simple Binary-Coded Decimal''' ('''SBCD''') o '''BCD 8421''', dove 8421 indica il peso dei bit.
 
{| class="wikitable"
{|
!Cifra!!SBCD<br />8421!!Excess-3!!BCD<br />2421!!BCD<br />84-2-1!!IBM 1401<br />8421
|-
Line 53 ⟶ 59:
|}
 
== Diritto ==
Nel [[1972]] 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: [(Gottschalk contro Benson).<ref>http://caselaw.lp.findlaw.com/scripts/printer_friendly.pl?page=us/409/63.html Gottschalk v Benson].</ref>
 
È un interessante caso nel complesso dibattito sulla [[Brevetto software|brevettabilità del software]].
== Note ==
<references />
 
== Voci correlate ==
* [[ASCII]]
* [[Charset]]
* [[Codice Gray]]
 
== Altri progetti ==
[[Categoria:Repertori di caratteri]]
{{interprogetto|preposizione=sul}}
 
== Collegamenti esterni ==
[[ar:نظام عشري مشفر ثنائيا]]
* {{Collegamenti esterni}}
[[ca:BCD]]
[[fr:Binary* {{FOLDOC||binary coded decimal]]}}
[[cs:BCD]]
* {{Garzanti|BCD}}
[[da:BCD (tal)]]
 
[[de:BCD-Code]]
{{Portale|informatica}}
[[en:Binary-coded decimal]]
 
[[es:Código binario decimal]]
[[Categoria:Repertori di caratteri]]
[[fr:Binary coded decimal]]
[[he:עשרוני בקידוד בינארי]]
[[hi:द्वयाधारी कूटित दशमलव]]
[[hu:Binárisan kódolt decimális]]
[[ja:二進化十進表現]]
[[ko:이진화 십진법]]
[[nl:BCD-code]]
[[pl:Kod BCD]]
[[pt:Codificação binária decimal]]
[[ru:Двоично-десятичный код]]
[[sk:BCD kód]]
[[sr:Бинарно кодирани децимални број]]
[[sv:BCD]]
[[th:เลขฐานสิบเข้ารหัสฐานสอง]]
[[zh:二進碼十進數]]