Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 정수로 이진 목록

<시간/>

다양한 접근 방식을 사용하여 파이썬에서 이진수를 나타내는 0과 1의 목록을 10진수로 변환할 수 있습니다. 아래 예제에서는 int() 메서드와 비트 왼쪽 시프트 연산자를 사용합니다.

int() 사용

int() 이 메소드는 두 개의 인수를 취하고 아래 구문에 따라 입력의 기준을 변경합니다.

int(x, base=10)
Return an integer object constructed from a number or string x.

아래 예에서 우리는 int() 메소드를 사용하여 목록의 각 요소를 문자열로 취하고 결합하여 기본 10인 정수로 변환되는 최종 문자열을 형성합니다.

예시

List = [0, 1, 0, 1, 0, 1]
print ("The List is : " + str(List))
# binary list to integer conversion
result = int("".join(str(i) for i in List),2)
# result
print ("The value is : " + str(result))

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

The List is : [1, 1, 0, 1, 0, 1]
The value is : 53

비트 단위 왼쪽 시프트 연산자 사용

비트 왼쪽 시프트 연산자는 이진 형식에 0을 더한 후 주어진 숫자 목록을 정수로 변환합니다. 그런 다음 비트 단위 또는 이 결과에 추가하는 데 사용됩니다. for 루프를 사용하여 목록의 각 숫자를 반복합니다.

예시

List = [1, 0, 0, 1, 1, 0]
print ("The values in list is : " + str(List))

# binary list to integer conversion
result = 0
for digits in List:
result = (result << 1) | digits

# result
print ("The value is : " + str(result))

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

The values in list is : [1, 0, 0, 1, 1, 0]
The value is : 38