Converting a binary number into a Decimal Number is confusing.
Seems simple enough.
16 8 4 2 1 <--- The weights of the bits in a Binary Coded Decimal number (BCD)
1 0 0 0 1 To find the decimal value just add up the weights of all the "1" bits.
So, to convert 10001 BCD to decimal, we just add 16 + 1 and get 17 decimal
To be more exact, we just converted a Binary Coded Decimal (BCD) number to decimal.
However, BCD isn't the only way of coding a binary number.
Consider 2 of 5 binary numbers. The weight of each column is different from regular BCD.
6 3 2 1 0 The weights of the bits in a 2 of 5 coded binary number (2 of 5)
1 0 0 0 1 Again, we just add up the weights of the "1" bits.
So 6 + 0 = 6
In 2 of 5, we always have 5 bits and two of them are "1"s while the others are "0"s
Here is the complete list:
6 3 2 1 0 <--- The weights of the bits in a Binary Coded Decimal number (BCD)
0 0 0 1 1 1 + 0 = 1
0 0 1 0 1 2 + 0 = 2
0 1 0 0 1 3 + 0 = 3
0 1 0 1 0 3 + 1 = 4
0 1 1 0 0 3 + 2 = 5
1 0 0 0 1 6 + 0 = 6
1 0 0 1 0 6 + 1 = 7
1 0 1 0 0 6 + 2 = 8
1 1 0 0 0 6 + 3 = 9
0 0 1 1 0 2 + 1 = 0 (there are two ways to form "3", so this combination is taken to be zero.)
Notice that there is no way to combine two "1"s and three zeros to represent a decimal zero. Yet, there are two ways to convert a decimal 3 to two of five binary,
6 3 2 1 0 <--- The weights
0 1 0 0 1 3 + 0 = 3
0 0 1 1 0 2 + 1 = 3