본문 바로가기
Language/Python

[Python] 진법 변환 정리

by 애기 개발자 2023. 4. 27.
반응형

n 진수 → 10 진수

int(string, base)

위의 방법으로 바꾸면 된다.

 

print(int('111', 2))
print(int('222', 3))
print(int('333', 4))
print(int('444', 5))
print(int('555', 6))
print(int('666', 7))
print(int('777', 8))
print(int('ABC', 16))

 

10 진수 → 2, 8, 16 진수

2진수 - bin()

8진수 - oct()

16진수 - hex()

 

print(bin(16))
print(oct(16))
print(hex(16))

위 처럼 결과값이 나오며

 

진수의 결과값만 얻고 싶다면

 

print(bin(16)[2:])
print(oct(16)[2:])
print(hex(16)[2:])

 

10진수 → n 진수

위의 2, 8, 16 진수는 제공되는 함수가 있지만

 

그 외의 진법들은 직접 변환하여 주어야 한다.

 

import string
tmp = string.digits + string.ascii_lowercase
def convert_10_to_n(num, base):
    q, r = divmod(num, base)
    if q == 0:
        return tmp[r]
    else:
        return convert_10_to_n(q, base) + tmp[r]
print(convert_10_to_n(26, 3))
print(convert_10_to_n(63, 4))
print(convert_10_to_n(124, 5))
print(convert_10_to_n(215, 6))
print(convert_10_to_n(342, 7))

 

 

반응형

댓글