Python은 10진수를 2진수, 8진수, 16진수로 손쉽게 변환할 수 있는 내장 함수를 제공합니다. 별도의 라이브러리 설치나 복잡한 연산 과정 없이, 각 진법에 맞는 함수를 호출하기만 하면 됩니다.
내장 변환 함수
각 진법별로 사용되는 함수는 다음과 같습니다.
2진수: bin() 8진수: oct() 16진수: hex()
예제
아래와 같이 함수를 호출하면 해당 진법의 표현 값을 문자열 형태로 얻을 수 있습니다.
decimal = 27 print(bin(decimal),"in binary.") print(oct(decimal),"in octal.") print(hex(decimal),"in hexadecimal.")
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
0b11011 in binary. 0o33 in octal. 0x1b in hexadecimal.
접두사 제거하기
출력 결과에서 확인할 수 있듯이, bin()은 0b, oct()는 0o, hex()는 0x 접두사가 붙은 문자열을 반환합니다. 접두사 없이 숫자 부분만 필요하다면 문자열 슬라이싱을 활용할 수 있습니다.
print(bin(decimal)[2:]) # 11011 print(oct(decimal)[2:]) # 33 print(hex(decimal)[2:]) # 1b
또한 format() 함수나 f-string의 포맷 지정자를 사용하면 더욱 유연하게 원하는 형식으로 변환할 수 있습니다.