# Binary to Decimal Conversion in Python

Binary and decimal are the two most commonly used number systems in computer programming. Binary number system is a base-2 number system that uses only two digits 0 and 1. On the other hand, the decimal number system is a base-10 number system that uses 10 digits (0 to 9). Converting a binary number to a decimal number is a common task in computer programming. Python, being a popular programming language, has built-in functions to perform binary to decimal conversion.

This post will go into great detail about the Python binary to decimal conversion.We will start by discussing the basics of binary and decimal number systems. Later, we'll talk about the various Python conversion techniques for binary to decimal numbers.

## What is Binary Number System?

The binary number system is a base-2 number system that uses only two digits 0 and 1. The position of each digit in a binary number represents a power of 2. The rightmost position represents 2^0, the next position to the left represents 2^1, the next position to the left represents 2^2, and so on. Programming for computers and digital electronics both frequently employ the binary number system.

## What is Decimal Number System?

The base-10 number system used in the decimal number system has 10 digits (0 to 9).The position of each digit in a decimal number represents a power of 10. The rightmost position represents 10^0, the next position to the left represents 10^1, the next position to the left represents 10^2, and so on. In daily life, arithmetic and counting activities are performed using the decimal number system.

## Binary to Decimal Conversion

A binary number can be converted to a decimal number by multiplying each digit by the corresponding power of two and then adding the results. Take the binary number 1011 as an example. To convert it to decimal, we multiply the leftmost digit 1 with 2^3 (which is 8), the second digit 0 with 2^2 (which is 0), the third digit 1 with 2^1 (which is 2), and the rightmost digit 1 with 2^0 (which is 1). The decimal equivalent is obtained by adding the outcomes, which yields 11.

In Python, there are numerous ways to translate binary numbers into decimal numbers. Let's talk about a few of the common techniques.

## Method 1: Using int() function

A built-in Python function called int() can be used to translate a binary integer into a decimal value.The int() function takes two arguments - the binary number and the base (which is 2 for binary).

Here is an example:

Example:

```binary_number = '1011'
decimal_number = int(binary_number, 2)
print(decimal_number)```

Output:

`11`

In this example, we have a binary number '1011'. We pass this binary number as the first argument to the int() function and 2 as the second argument (which represents the base). The binary number is transformed into a decimal number and returned by the int() function. The print() method is then used to print the decimal value.

## Method 2: Using eval() function

Python's eval() function can also be used to translate binary numbers into decimal numbers. A string is evaluated as a Python expression using the eval() method.We can use this function to evaluate the binary number as a Python expression and convert it to a decimal number. Here is an example:

Example:

```binary_number = '1011'
decimal_number = eval('0b' + binary_number)
print(decimal_number)```

Output:

`11`

Inthis example, we first define a variable 'binary_number' with the value '1011', which is a binary number. We then concatenate the string '0b' with the binary number using the '+' operator to create a string that represents a Python expression. The '0b' prefix is used to indicate that the following digits represent a binary number.

We then pass this string as an argument to the eval() function, which evaluates it as a Python expression and returns the decimal equivalent of the binary number.

## Method 3: Using loops and arithmetic operations

Another method to convert a binary number to a decimal number in Python is to use loops and arithmetic operations. This method involves iterating over each digit of the binary number, multiplying it with the corresponding power of 2, and adding the results. Here's an example:

Example:

```binary_number = '1011'
decimal_number = 0
power = len(binary_number) - 1
for digit in binary_number:
decimal_number += int(digit) * (2 ** power)
power -= 1
print(decimal_number)```

Output:

`11`

In this example, we first define a variable 'binary_number' with the value '1011', which is a binary number. We then define a variable 'decimal_number' with an initial value of 0, which will be used to store the decimal equivalent of the binary number. We also define a variable 'power' with the value of the highest power of 2 in the binary number.

We then use a for loop to iterate over each digit of the binary number. Inside the loop, we convert the digit to an integer using the int() function and multiply it with 2 raised to the power of the current position (which is represented by the variable 'power'). We add the result to the 'decimal_number' variable.

Finally, we decrement the 'power' variable by 1 to move to the next position in the binary number. We repeat this process until we have processed all the digits in the binary number. The binary number's decimal representation, which is stored in the variable named "decimal number," is then printed.

### Conclusion:

In computer programming, converting binary numbers to decimal numbers is a typical task.Python provides several built-in functions and methods to perform this conversion. In this article, we discussed three popular methods to convert a binary number to a decimal number in Python - using the int() function, the eval() function, and loops and arithmetic operations.

Each method has its advantages and disadvantages. The int() function is the simplest and fastest method, but it can only convert a string containing a binary number to a decimal number. The eval() function is more flexible and can evaluate any Python expression, but it can also be risky if the input string is not validated properly. The loops and arithmetic operations method is the most flexible and can handle any type of input, but it is also the most complex and requires more code.

When choosing a method to convert a binary number to a decimal number in Python, consider the complexity of the input, the performance requirements, and the potential risks associated with the input string.