[Tutor] Binary to Decimal conversion

bob gailer bgailer at gmail.com
Tue Mar 10 01:50:47 CET 2009


Chris Castillo wrote:
> I am having some difficulties in producing the correct code for a 
> simple binary to decimal conversion program. The arithmetic I want to 
> use is the doubling method - so if I wanted to get the decimal 
> equivalent of 1001, I would start with multiplying 0 * 2 and adding 
> the left most digit. I would then take the sum of 1 and multiply it by 
> 2 and add the next digit to that product and so on and so forth until 
> I come to an end sum of 9.
>
> I seem to come up with something like this:
>
> binnum = raw_input("Please enter a binary number:  ")
>
>
> for i in range(0, len(binum), 1):
>     item = "0"
>     if i < len(binum) - 1:
>         item = binum[i + 1]
>    
>     binsum = binsum * int(item) * 2 + binsum + int(binum[i])
>
>
> print "\nThe binary number ", binum, " you entered converts to", 
> binsum, " in decimal."

Having said that I will point out
1 - to access elements of a sequence you may write:
     for item in binnum:
2 - the first element of binnum is binnum[0]. Your code starts by 
accessing the 2nd element.
3- you use binsum before assigning anything to it. That is bound to 
raise a Name error.
4 - I don't understand binsum = binsum * int(item) * 2 + binsum + 
int(binum[i])
     That does not agree with your verbal algorithm.

-- 
Bob Gailer
Chapel Hill NC
919-636-4239


More information about the Tutor mailing list