What You'll Learn
- •Validating input format for binary strings
- •Implementing positional numeral system evaluation
- •Using loops to accumulate a numeric result
Python
# Program to convert binary to decimal without using int(x, 2)
binary_str = input("Enter a binary number: ")
if not all(ch in '01' for ch in binary_str):
print("Invalid binary number.")
else:
decimal_value = 0
for ch in binary_str:
decimal_value = decimal_value * 2 + int(ch)
print(f"Decimal value of {binary_str} is {decimal_value}")Output
Enter a binary number: 1010 Decimal value of 1010 is 10
We interpret the binary string from left to right:
Starting from 0:
- Multiply current value by 2.
- Add the current bit (0 or 1).
This is equivalent to evaluating the positional value of each bit.
Step-by-Step Breakdown
- 1Read a string representing a binary number.
- 2Check that it only contains 0 and 1.
- 3Initialize decimal_value to 0.
- 4For each character, multiply decimal_value by 2 and add the bit.
- 5Print the final decimal value.