Open In App

Python – Binary list to integer

Last Updated : 30 Dec, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

A binary list represents binary digits (0s and 1s) as individual elements of a list. This article will explore various methods to convert a binary list into an integer.

Using int() with String Conversion

This is the most efficient method. By joining the binary list into a string and using the built-in int() function with a base of 2, we can directly convert the binary representation into its integer equivalent.

Python
a = [1, 0, 1, 1]

n = int(''.join(map(str, a)), 2)
print(n)

Output
11

Explanation:

  • The map() function converts each element of the binary list ‘a’ to a string.
  • ''.join() combines the list elements into a single string (e.g., “1011”).
  • The int() function interprets this string as a binary number (base 2) and converts it to an integer.

Let’s explore some more methods and see how we can convert Binary list to integer.

Using Bitwise Operations

Bitwise operations are another efficient way to convert a binary list to an integer. This method processes the binary list iteratively, calculating the integer value by shifting and adding.

Python
a = [1, 0, 1, 1]

n = 0
for bit in a:
    n = (n << 1) | bit
print(n)

Output
11

Explanation:

  • We initialize number to 0.
  • For each binary digit in the list, we use the left shift operator (<<) to shift the bits of number to the left by one place and then use the bitwise OR operator (|) to add the current bit.
  • This method mimics the process of manually calculating the decimal value of a binary number.

Using a Mathematical Approach

This method involves calculating the integer value of a binary list using powers of 2. It’s slightly less efficient than the previous methods but still effective for understanding the binary-to-integer conversion process.

Python
a = [1, 0, 1, 1]

n = sum(bit * (2 ** i) for i, bit in enumerate(reversed(a)))
print(n)

Output
11

Explanation:

  • reversed() function ensures we process the binary list from the least significant bit (rightmost) to the most significant bit (leftmost).
  • Using enumerate(), we calculate the positional value for each bit.
  • sum() function combines these positional values to produce the final integer.

Using a For Loop

This method manually calculates the integer value by iterating over the binary list and using powers of 2.

Python
a = [1, 0, 1, 1]
n = 0

for i in range(len(a)):
    n += a[-(i + 1)] * (2 ** i)
print(n)

Output
11

Explanation:

  • We start with number initialized to 0.
  • For each index, we access the corresponding bit in reverse order using negative indexing.
  • The bit is multiplied by its positional value (a power of 2), and the result is added to number.


Next Article

Similar Reads