After every shift, all BCD digits are examined, and 3 is added to any BCD digit that is currently 5 or greater. The binary number is left-shifted once for each of its bits, with bits shifted out of the MSB of the binary number and into the LSB of the accumulating BCD number. The “double dabble” algorithm is commonly used to convert a binary number to BCD. The Verilog code below illustrates converting a 4-digit BCD number to it’s binary equivalent. To find the binary equivalent, each BCD digit is multiplied by its weighted magnitude: 9 x 10^2 + 8 * 10^1 + 7 * 10^0, or 9 * 100 + 8 * 10+ 7 * 1. Consider the BCD number 987, stored as three 4-bit BCD codes: 1001 for 9 (digit 2), 1000 for 8 (digit 1), and 0111 for 7 (digit 0). Each BCD digit in a given number contributes a magnitude equal to the digit multiplied by its weight, and each digit’s weight is equal to 10 raised to the power of the digit’s position in the number. BCD numbers are representations of decimal (base 10) numbers, and like all modern number systems, BCD numbers use positional weighting.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |