# Binary to Decimal Converter Not Working

Page 1 of 1

## 7 Replies - 6749 Views - Last Post: 11 December 2012 - 03:46 PMRate Topic: //<![CDATA[ rating = new ipb.rating( 'topic_rate_', { url: 'http://www.dreamincode.net/forums/index.php?app=forums&module=ajax&section=topics&do=rateTopic&t=303074&amp;s=635083ead1528e09d152aea4ad0a7ed3&md5check=' + ipb.vars['secure_hash'], cur_rating: 0, rated: 0, allow_rate: 0, multi_rate: 1, show_rate_text: true } ); //]]>

### #1 Stephenfrazier10

Reputation: 2
• Posts: 109
• Joined: 12-September 12

# Binary to Decimal Converter Not Working

Posted 06 December 2012 - 11:05 PM

I have did this out on paper over and over, and the algorithm I have developed seems like it should work. Im not sure why its not working, any help would be appreciated.

```def Binary_to_Decimal():
Again = "Y"
while Again in "Yy":
binaryNumber = str(input("Enter a number in binary, to get it converted into decimal: "))
binaryNumber = binaryNumber[::-1]
Multiplyer = 1
DecimalNumber = 0
for i in range(len(binaryNumber)):
if i == 1:
DecimalNumber = DecimalNumber + Multiplyer
Multiplyer = Multiplyer * 2
elif i == 0:
Multiplyer = Multiplyer * 2
print("That number is decimal is: " + str(DecimalNumber))
print("\n")
Again = input("Do you want to convert anymore? (Y or N)")

Binary_to_Decimal()

```

Is This A Good Question/Topic? 0

## Replies To: Binary to Decimal Converter Not Working

### #2 sepp2k

• D.I.C Lover

Reputation: 2226
• Posts: 3,429
• Joined: 21-June 11

## Re: Binary to Decimal Converter Not Working

Posted 06 December 2012 - 11:35 PM

It would help if you explained how exactly the code is not working, but at a first glance, your loop does nothing when i is neither 0 nor 1.

This post has been edited by sepp2k: 06 December 2012 - 11:35 PM

### #3 Stephenfrazier10

Reputation: 2
• Posts: 109
• Joined: 12-September 12

## Re: Binary to Decimal Converter Not Working

Posted 06 December 2012 - 11:42 PM

I know it assumes you enter a number in binary.

### #4 sepp2k

• D.I.C Lover

Reputation: 2226
• Posts: 3,429
• Joined: 21-June 11

## Re: Binary to Decimal Converter Not Working

Posted 07 December 2012 - 01:21 AM

A binary number can still be more than 2 digits long.

### #5 Tayacan

• D.I.C Regular

Reputation: 145
• Posts: 275
• Joined: 18-January 11

## Re: Binary to Decimal Converter Not Working

Posted 07 December 2012 - 02:28 AM

Okay, so the problem is in your for loop. You're only doing things if i is either 1 or 0, and you're not even doing the right things in those cases. So here's what should actually happen in your for loop:

• Pull out the binary digit from the string.
• Multiply it with the multiplier and add it to the DecimalNumber.
• Double the multiplier.
• Proceed with the next digit.

Here's how to do that in code:
```def Binary_to_Decimal():
Again = "Y"
while Again in "Yy":
binaryNumber = str(input("Enter a number in binary, to get it converted into decimal: "))
binaryNumber = binaryNumber[::-1]
Multiplyer = 1
DecimalNumber = 0
for i in range(len(binaryNumber)):
DecimalNumber += int(binaryNumber[i]) * Multiplyer # Step 1 and 2
Multiplyer *= 2 # Step 3
print("That number is decimal is: " + str(DecimalNumber))
print("\n")
Again = input("Do you want to convert anymore? (Y or N)")

Binary_to_Decimal()

```

### #6 baavgai

• Dreaming Coder

Reputation: 6129
• Posts: 13,236
• Joined: 16-October 07

## Re: Binary to Decimal Converter Not Working

Posted 07 December 2012 - 08:18 AM

Look at the value in binaryNumber, not the number of i. You can actually do that with:
```for i in binaryNumber:
# do something
if i == '1':
# do something

```

Also, there is a fundamental logic error: shift then add. Reversing is wrong with that approach. Walk it:
```s = '1011'
n = 0
n = n * 2 + 1 = 1
n = n * 2 + 0 = 2
n = n * 2 + 1 = 5
n = n * 2 + 1 = 11

```

### #7 Stephenfrazier10

Reputation: 2
• Posts: 109
• Joined: 12-September 12

## Re: Binary to Decimal Converter Not Working

Posted 10 December 2012 - 01:00 PM

### #8 Stephenfrazier10

Reputation: 2
• Posts: 109
• Joined: 12-September 12

## Re: Binary to Decimal Converter Not Working

Posted 11 December 2012 - 03:46 PM

I got my entire program working now!

```"""
Gives the user multiple choices on converting between different number systems
used in computer science/programming
"""

def Decimal_To_Binary_Converter():
"""
Takes a decimal base number and converts it to a binary base number
"""
Again = "Y"
while Again in "Yy":
DecimalNumber = int(input("Enter a number in decimal, to get it converted into binary: "))
BinaryVersion = int(bin(DecimalNumber)[2:])
print("That decimal number in binary is: " + str(BinaryVersion))
print("\n")
Again = input("Do you want to convert anymore? (Y or N) ")
print("\n")

def Binary_to_Decimal_Converter():
"""
Takes a binary base number and converts it to a decimal base number
"""
Again = "Y"
while Again in "Yy":
binaryNumber = str(input("Enter a number in binary, to get it converted into decimal: "))
binaryNumber = binaryNumber[::-1]
Multiplyer = 1
DecimalNumber = 0
for i in range(len(binaryNumber)):
DecimalNumber += int(binaryNumber[i]) * Multiplyer
Multiplyer = Multiplyer * 2
print("That binary number in decimal is: " + str(DecimalNumber))
print("\n")
Again = input("Do you want to convert anymore? (Y or N) ")
print("\n")

def Decimal_to_Hex_Converter():
"""
Converts a decimal base number to a hexadecimal base number
"""
Again = "Y"
while Again in "Yy":
DecimalNumber = int(input("Enter a number in decimal, to have it converted into hexadecimal: "))
HexNum = hex(DecimalNumber)
RealHexNum = HexNum[2:]
print("That decimal number in hexadecimal is: " + str(RealHexNum))
print("\n")
Again = input("Do you want to convert anymore? (Y or N) ")
print("\n")

def Binary_to_Hex_Converter():
"""
Converts a binary base number to a hexadecimal base number
"""
Again = "Y"
while Again in "Yy":
BinaryNumber = str(input("Enter a number in binary, to have it converted to hexadecimal: "))
BinaryNumber = BinaryNumber[::-1]
Multiplyer = 1
DecimalNumber = 0
for i in range(len(BinaryNumber)):
DecimalNumber += int(BinaryNumber[i]) * Multiplyer
Multiplyer = Multiplyer * 2
hexVersion = hex(DecimalNumber)
hexVersion = hexVersion[2:]
print("That binary number in hexadecimal is " + str(hexVersion))
print("\n")
Again = input("Do you want to convert anymore? (Y or N) ")
print("\n")

def Hex_to_Decimal_Converter():
"""
Converts a hexadecimal base number to a decimal base number
"""
Again = "Y"
while Again in "Yy":
HexValue = input("Enter a number in hexadecimal, to get it converted into decimal: ")
DecimalValue = int(HexValue, 16)
print("That hexadecimal number in decimal is " + str(DecimalValue))
print("\n")
Again = input("Do you want to convert anymore? (Y or N) ")
print("\n")

def Hex_to_Binary_Converter():
"""
Converts a hexadecimal base number to a binary base number
"""
Again = "Y"
while Again in "Yy":
HexValue = input("Enter a number in hexadecimal, to get it converted into binary: ")
DecimalValue = int(HexValue, 16)
BinaryValue = bin(DecimalValue)
BinaryValue = BinaryValue[2:]
print("That hexadecimal number in binary is " + str(BinaryValue))
print("\n")
Again = input("Do you want to convert anymore? (Y or N) ")
print("\n")

def main():
"""
Asks the user which type of conversion they want done, then takes their choice and
calls on the appropriate function. Prevents the user from picking an option that is
not a choice with an else statement.
"""
print("Welcome to my Binary and Decimal Converter!")
print("------------------------------------------------")
print("Press 1 for decimal to binary ")
print("Press 2 for binary to decimal")
print("Press 3 for decimal to hexadecimal")
print("Press 4 for binary to hexadecimal")
print("Press 5 for hexadecimal to decimal")
print("Press 6 for hexadecimal to binary")
print("\n")
choice = input("What do you want to do? ")
if choice == "1":
print("\n")
Decimal_To_Binary_Converter()
elif choice == "2":
print("\n")
Binary_to_Decimal_Converter()
elif choice == "3":
print("\n")
Decimal_to_Hex_Converter()
elif choice == "4":
print("\n")
Binary_to_Hex_Converter()
elif choice == "5":
print("\n")
Hex_to_Decimal_Converter()
elif choice == "6":
print("\n")
Hex_to_Binary_Converter()
else:
print("\n")
print("That was not an option, try again!")
print("\n")
main()

main()

```