다양한 접근 방식을 사용하여 파이썬에서 이진수를 나타내는 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