220919_Python 진수 변환하기

Csw·2022년 9월 19일
0

TIL

목록 보기
8/18

10진수 → n진수

파이썬 내장 함수 bin, oct, hex

  1. 10진수 → 2진수/8진수/16진수로 변환

    * 결과는 모두 string(문자열)로 반환

    	bin(x : int) : 정수 x를 입력받아서 2진수로 변환한 값을 문자열로 반환
    	oct(x : int) : 정수 x를 입력받아서 8진수로 변환한 값을 문자열로 반환
    	hex(x : int) : 정수 x를 입력받아서 16진수로 변환한 값을 문자열로 반환
    • 예시
         print(bin(12))
          print(oct(12))
          print(hex(12))
    • 결과
      0b는 2진수, '0o'는 8진수, '0x'는 16진수를 의미함

      0b1011
      0o13
      0xc

  1. 변환한 값을 정수로 변환하고 싶다면 int 함수문자열 슬라이싱을 이용하면 됨!
       단, 두자리 진수는 문자가 포함되기 때문에 별도의 방법을 생각해야 함.'

    • 예시
       print(int(bin(12)[2:])
        print(oct(12)[2:])
    • 결과

      1011
      13




10진수 → n진수 (2, 8, 16 제외)

  • 별도의 함수가 없기 때문에 함수로 구현
	def trans(number, n):
    	answer = ''
        
        while number > 0:
        	number, mod = divmod(number, n)
            answer += str(mod)
            
        return answer[::-1]
        # 제일 마지막 자릿수가 먼저 계산되어 앞에 쌓이기 때문에 뒤집어야 함



n진수 → 10진수

파이썬 내장 함수 int

	int(value, base)
  • base에는 n진수의 n을, value에는 n진수 값(문자열)을 매개변수로 넣어주면 됨.

    • default 값 : value = 0, base = 10
  • n진수를 10진수로 변환하여 정수 값을 반환

  • base에는 2부터 36 사이의 값을 입력할 수 있음

    • 예시
    	 print(int('111', 2))
         print(int('123', 5))
         print(int('777', 8))
         print(int('A0B', 16))
    • 결과

      7
      38
      511
      2571




n진수 → n진수

  • 위에 작성한 내용을 활용
    1. n진수를 10진수로 변경
    2. 10진수를 n진수로 변경
	print(trans(int('25',4),3)
    # 4진수 25를 3진수로 변경하는 코드


참고 사이트

0개의 댓글