python 진수변환

Y·2023년 11월 4일
0

오늘 코딩테스트를 치르면서 진수변환을 이용하는 문제가 나왔는데, 파이썬에서 진수변환 라이브러리가 있는지, 없는지 기억이 안나서(..) 공식문서를 한참 뒤지다가 결국 구현해서 풀었다. 그래서 이번 기회에 정리해보고자 한다.

  • n진수 -> 10진수
    사실 이건 공식 문서 읽어도 찾을 수 있었다.
    int(string, base)를 통해 변환하면 n진수(base)의 string이 10진수로 변환된다.

  • 10진수 -> 2,8,16진수
    이것 또한 공식 문서 읽어서 찾을 수 있었다..
    2진수는 bin(), 8진수는 oct(), 16진수는 hex()를 사용한다.

  • 10진수 -> n진수
    이게 코딩테스트에 나왔던 문제였는데, 직접 코드를 작성해야한다고 한다. 코테 시간낭비한거였다(...) 다만 내가 짰던 것보다 좀 더 효율적인 코드를 찾아서 기록해본다.

    def convert(num,base):
        rev_vase = ''
        
        while n>0:
        	num,mod = divmod(num,base)
          rev_base += str(mod)
          
        return rev_base[::-1]

    나는 divmod()를 몰라서 직접 나누고 나머지를 구하고 했다(...)

  • n진수 -> m진수
    이 경우는 n진수->10진수->m진수의 과정을 이용하면 된다고 한다.

profile
개발자, 학생

0개의 댓글