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