CONVERTING BINARY TO DECIMAL

  Steps:
  1. Get the last digit of the hex number, call this digit the currentDigit.  
  2. Make a variable, let's call it power.  Set the value to 0.
  3. Multiply the current digit with (2^power), store the result.
  4. Increment power by 1.
  5. Set the the currentDigit to the previous digit of the hex number.
  6. Repeat step 3 until all digits have been multiplied.
  7. Sum the result of step 3 to get the answer number.

Example 
Convert BINARY 11101 to DECIMAL

NOTES MULTIPLICATION RESULT
start from the last digit, which is 1, multiply that digit with 2^0, note that the power of 0 of any number is always 1 

11101 (current digit is in bold)

1*(2^0) 1
process the previous digit, which is 0, multiply that digit with the increasing power of 2

11101 (current digit is in bold)

0*(2^1) 0
process the previous digit, which is 1, note that 2^2 means 2*2

11101 (current digit is in bold)

1*(2^2) 4
process the previous digit, which is 1, note that 2^3 means 2*2*2

11101 (current digit is in bold)

1*(2^3) 8
process the previous digit, which is 1, note that 2^4 means 2*2*2*2

11101 (current digit is in bold)

1*(2^4) 16
here, we stop because there's no more digit to process    
this number comes from the sum of the RESULTS  ANSWER 29

Basically, this is the same as saying:

1*(2^4) + 1*(2^3) + 1*(2^2) + 0*(2^1) + 1*(2^0)

or

1*(16) + 1*(8) + 1*(4) + 0*(2) + 1*(1)

The reason it's easier to start backward is because:

  • Counting the number of digits takes extra time, and you might count wrongly.
  • If you don't remember what a particular power-of-2 value, it's easy to calculate it from the previous value.  For instance, if you don't remember what the value of 2*2*2 is, then just double the value of 2*2 (which you already have - if you had started backward).

Another Example 
Convert BINARY 1010 to DECIMAL

MULTIPLICATION RESULT
0*(2^0) 0
1*(2^1) 2
0*(2^2) 0
1*(2^3) 8
   
ANSWER 10

Is constructing a table like above required?  No, it just depends on your preference.  Some people are visual, and the table might help.  Without a table, it's also easy.  If you want to be a speed counter, just remember that the value of the multiplier is always the double of the previous one.  

1, 2, 4, 8, 16, 32, 64, 128, 256, 512, ...

POWER OF 2s RESULT
 2^0 1
 2^1 = 2 2
 2^2 = 2*2 4
 2^3 = 2*2*2 8
 2^4 = 2*2*2*2 16

Example 
Convert BINARY 1010001 to DECIMAL.
Again, I'm starting backward here:

(1*1) + (0*2) + (0*4) + (0*8) + (1*16) + (0*32) + (1*64) =
  1   +   0   +   0   +   0   +   16   +   0    +   64   = 81
 

 

(C) F. Permadi

<<INDEX>>

 

permadi@permadi.com
10/2001