Convert binary to decimal
Let us explore how to convert a number from binary to decimal representation. Here is an example of such a conversion:
- π€ The binary number
11011. - π― The decimal number
27.
This conversion is performed by summing powers of two. In this case, it is 2^4 + 2^3 + 2^1 + 2^0. The power 2^2 is skipped because there is a 0 in that position.
This process is similar to decimal representation, except the base is 2 instead of 10. For instance, the number 27 is actually 2*10^1 + 7*10^0, or simply 27.
We can create our function as follows. We add 2 raised to the appropriate power, using the digit, which is either 0 or 1.
def binary_to_decimal(binary):
decimal = 0
power = 0
for digit in reversed(binary):
if digit not in {'0', '1'}:
raise ValueError("Invalid binary number.")
decimal += int(digit) * (2 ** power)
power += 1
return decimal
We can use the function as follows:
binary = "11011"
decimal = binary_to_decimal(binary)
print(f"{binary} -> {decimal}")
# 11011 -> 27
βοΈ Exercises:
- Write a
decimal_to_binaryfunction that performs the reverse conversion, from decimal to binary.