Binary-coded decimal: Difference between revisions

Content deleted Content added
headings ==Basics== (to break the large introduction chapter) and ==See also== (obvious). also some formatting.
Line 1:
'''Binary-coded decimal''' ('''BCD''') is a [[numeral system]] used in [[computing]] and in [[electronics]] systems. In BCD, numbers are represented as a sequence of decimal digits in which each digit is represented by four [[bit]]s:.
 
==Basics==
 
The following table represents [[decimal]] digits from 0 to 9 in [[binary numeral system]]:
 
Digit bits Digit bits
Line 8 ⟶ 12:
'''4''' 0100 '''9''' 1001
 
To BCD-encode a decimal number such as 127, for example, each of the decimal digits is encoded using the bit pattern shown above, that is: 0001, 0010, 0111.
 
Since most computers store data in eight-bit [[byte]]s, there are two common ways of storing four-bit BCD digits in those bytes: either one can simply ignore the extra four bits of each byte, usually filling them with either zero bits or one bits (as in [[EBCDIC]]); or one can store two digits per byte, called "packed" BCD (packed BCD numbers also usually end with a sign 'digit', for which the preferred values are 1100 for + and 1101 for -). Thus the number 127 would be represented as (11110001, 11110010, 11110111) in EBCDIC or (00010010, 01111100) in packed BCD.
 
While BCD is wasteful (about 1/6 of the available memory is wasted, even in packed BCD), it has a direct correspondence to the [[ASCII]] character set if the BCD number is prepended with 0011 or ORed[[Bitwise_operation#OR|OR]]'ed with 00110000 (decimal 48), and similarly maps to EBCDIC characters if the BCD code is prefixed with 1111.
 
Further, large numbers can easily be displayed on 7-element displays by splitting up the [[Integral data type|nybbles]] and sending each to a different character (the individual characters often have the wiring to display the correct figures). The [[BIOS]] in PCs usually keeps the date and time in BCD format, probably for historical reasons (it avoided the need for binary to ASCII conversion).
Line 32 ⟶ 36:
 
In the 1620 BCD ''alphamerics'' were encoded using digit pairs, with the "zone" in the even digit and the "digit" in the odd digit. Translation hardware converted between the internal digit pairs and standard six-bit BCD codes.
 
==See also==
*[[Gray code]]
 
==External links==