Content deleted Content added
*changed 'nybbles' to 'nibbles' |
m Automated conversion |
||
Line 1:
'''Binary coded decimal''' (BCD) is a way of encoding numbers in computer memory. In BCD, numbers are represented as decimal digits, and each digit is represented by four [[bit]]s:
<blockquote><tt>
Digit Bits Digit Bits<br>
'''0''' 0000 '''5''' 0101
'''1''' 0001 '''6''' 0110
'''2''' 0010 '''7''' 0111
'''3''' 0011 '''8''' 1000
'''4''' 0100 '''9''' 1001
</tt></blockquote>
To encode a number such as 127, then, one simply encodes each of the decimal digits as above, giving (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 zero bits or one bits (as in [[EBCDIC]]); or one can store two digits per byte, called "packed" BCD. Thus the number 127 would be represented as (11110001, 11110010, 11110111) in EBCDIC; or as (00000001, 00100111) in packed BCD (with a leading zero added).
While BCD is wasteful (3/8 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 or OR'd with 00110000 (decimal 48), and large numbers can easily be displayed on 7-element displays by splitting up the [[
▲While BCD is wasteful (3/8 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 or OR'd with 00110000 (decimal 48), and large numbers can easily be displayed on 7-element displays by splitting up the [[nibbles]] 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, most probably for historial reasons.
|