Python - Binary list to integer
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.
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.
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 ofnumber
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.
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.
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
.