[Python] 2진수 변환 함수, 3가지
April 19, 2024
10진수를 2진수로 변환하는 함수와 방법에 대해서 알아보겠습니다.
1. bin() 함수를 이용한 방법
bin(n)
은 10진수 n을 2진수의 문자열로 변환합니다.
- 리턴 값에 2진수를 의미하는
0b
가 문자열 앞에 붙음 - 리스트 슬라이싱을 이용하여
0b
를 제거할 수 있음
decimal_number = 10
binary_string = bin(decimal_number)
print(binary_string)
# 리스트 슬라이싱으로 0b 제거
binary_string2 = binary_string[2:]
print(binary_string2)
Output:
0b1010
1010
2. 비트 연산자를 이용한 방법
비트 연산자 >>
와 &
를 이용하여 직접 변환하는 코드를 구현할 수 있습니다.
아래 코드는 다음과 같은 순서로 동작합니다.
- 10진수의 1비트에 해당하는 값을 문자열에 저장
- 10진수를 오른쪽으로 1bit 이동
- 10진수의 1비트에 해당하는 값을 문자열의 끝에 추가
- 10진수가 0이 될 때까지 반복하고, 문자열을 거꾸로 뒤집으면 2진수가 됨
decimal_number = 10
binary_list = []
while decimal_number > 0:
binary_digit = decimal_number & 1
binary_list.append(str(binary_digit))
decimal_number >>= 1
binary_string = ''.join(reversed(binary_list))
print(binary_string)
Output:
1010
3. 반복문으로 2진수 변환
10진수를 2로 나누면서 나머지를 2진수 문자열에 저장하면서, 직접 2진수로 변환합니다.
- 10진수가 0인 경우, binary_string가 빈 문자열이 됨. 이 경우는 “0”으로 결과 입력
decimal_number = 10
binary_string = ""
while decimal_number > 0:
remainder = decimal_number % 2
binary_string = str(remainder) + binary_string
decimal_number = decimal_number // 2
if not binary_string:
binary_string = "0"
print(binary_string)
Output:
1010