본문 바로가기
CS/Algorithm

10진수 n진수 변환, n진수 10진수 변환

by hyez 2023. 5. 10.

진수 문제가 나오면 항상 내장 함수를 찾느라 시간이 좀 걸렸다..! 해당 내용을 정리해보기로 한다 !

 

10진수에서 n진수 변환

10진수 > 2진수, 8진수 16진수

python에서는 2진수, 8진수, 16진수 변환을 위한 bin, oct, hex 메서드를 지원한다.

주의할점은 앞 두 글자는 진법 표시를 위해 있다는 점  ! bin(11)[2:] 와 같이 얻을 수 있다.

print(bin(11))
print(oct(11))
print(hex(11))
# 0b1011
# 0o13
# 0xb

10진수 > n진수

혹은 함수작성을 통해 원하는 진법으로 변환이 가능하다.

def convert(n, base=2):
    T = '0123456789ABCDEF'
    q, r = divmod(n, base)
    if q == 0:
        return T[r]
    else:
        return convert(q) + T[r]

 

n진수에서 10진수 변환

python의 int()는 정수로만 바꿔주는 줄 알았는데, 10진수로도 변환이 가능했다.

int(string, base)

로 사용이 되는데 base의 자리에 n진수의 n을 넣으면 된다.

print(int('101', 2)) # 5
print(int('202', 3)) # 20
print(int('303', 4)) # 51
print(int('404', 5)) # 104
print(int('505', 6)) # 185
print(int('ACF', 16)) # 2767

 

 

댓글