Binary-coded decimal – 2진화 10진법

이진화 십진법(Binary-coded decimal, BCD)은 십진법 숫자를 이진법으로 표현된 비트들의 연속으로 표현하는 방법으로, 하나의 십진법 자리가 네 개의 이진법 자리에 곧바로 대응하므로 변환이나 역변환이 쉽다는 이점을 갖고 있다. 그러나 쓰이지 않고 버려지는 패턴이 많고 연산을 위해서 더 많은 처리와 회로가 필요하다는 단점이 있다.

이진화 십진법은 특히 숫자의 십진 출력을 요하는 전자 회로와 마이크로프로세서에서 많이 사용되는데, 이는 순수 이진법으로 표현된 숫자를 십진법으로 출력하기 위해서는 복잡한 나눗셈 회로가 필요하기 때문이다. 이진화 십진법을 사용할 경우 각 자리 별로 하나씩 간단한 변환 회로를 만들어서 7세그먼트 표시 장치 등에 바로 연결할 수 있기 때문에 전체적인 구현을 간편하게 할 수 있다. 이 때문에 일부 프로세서는 아예 BCD로 덧셈과 뺄셈 등의 간단한 연산을 할 수 있는 명령을 갖추고 있다.

이진화 십진법에서 십진법의 각 자리는 다음 표에 따라 네 개의 비트로 변환된다. 역변환도 동일하다.

  십진법    0     1      2     3      4     5      6     7     8      9
  BCD    0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

따라서 십진법 숫자 729는 이진화 십진법으로 0111 0010 1001로 표현된다.

많은 컴퓨터가 8비트를 묶어서 1바이트로 처리하기 때문에, 이런 환경에서 이진화 십진법을 저장하는 방법은 두 가지가 있을 수 있다.

  * 한 바이트에 한 자리만을 저장하고, 남는 네 자리를 0000이나 1111(EBCDIC의 경우),
    또는 0011(ASCII의 경우) 등으로 채운다.
  * 한 바이트에 두 자리를 저장한다.

In computing and electronic systems, Binary-coded decimal (BCD) is an encoding for decimal numbers in which each digit is represented by its own binary sequence. Its main virtue is that it allows easy conversion to decimal digits for printing or display and faster decimal calculations. Its drawbacks are the increased complexity of circuits needed to implement mathematical operations and a relatively inefficient encoding – 6 wasted patterns per digit. Even though the importance of BCD has diminished [citation needed], it is still widely used in financial, commercial, and industrial applications.

In BCD, a digit is usually represented by four bits which, in general, represent the values/digits/characters 0-9. Other bit combinations are sometimes used for sign or other indications.

To BCD-encode a decimal number using the common encoding, each decimal digit is stored in a four-bit nibble.

   Decimal:    0      1      2      3      4       5       6      7       8      9
   BCD:     0000  0001  0010  0011  0100  0101  0110  0111  1000  1001

Thus, the BCD encoding for the number 127 would be: 0001 0010 0111

Since most computers store data in eight-bit bytes, there are two common ways of storing four-bit BCD digits in those bytes:

  * each digit is stored in one byte, and the other four bits are then set to all zeros, all ones
    (as in the EBCDIC code), or to 0011 (as in the ASCII code)
  * two digits are stored in each byte.

Unlike binary encoded numbers, BCD encoded numbers can easily be displayed by mapping each of the nibbles to a different character. Converting a binary encoded number to decimal for display is much harder involving integer multiplication or divide operations. The BIOS in many PCs keeps the date and time in BCD format, probably for historical reasons (it avoided the need for binary to ASCII conversion).

출처: 위키사전(영문) / 위키사전(한글)

You may also like...

댓글 남기기