[PYTHON] 파이썬 10진수 변환(2진수,8진수,16진수)
- 언어 / Python
- 2020. 6. 19.

파이썬 진수 변환 방법
파이썬은 기본적으로 10진수입니다.
다른 진수는 아래와 같이 접두어가 붙습니다.
2진수 : 숫자앞에 0b 가 붙습니다.
8진수 : 숫자앞에 0o 가 붙습니다.
16진수 : 숫자앞에 0x 가 붙습니다.
10진수를 각 n진수로 변환하는 방법,
n진수를 10진수로 변환하는 방법을 알아볼게요.
10진수 각 진수로 변환
bin(number) : 2진수 변환 함수
oct(number) : 8진수 변환 함수
hex(number) : 16진수 변환 함수
#10진수 32
convertVal = 32
cvB = bin(convertVal) #2진수로 변환
cvO = oct(convertVal) #8진수로 변환
cvH = hex(convertVal) #16진수로 변환
print(cvB)
print(cvO)
print(cvH)
결과

진수 10진수로 변환하기
각진수(2진수, 8진수, 16진수)를 출력하면 10진수로 자동 변환됩니다.
cvB = 0b100000; #2진수 32
cvO = 0o40; #8진수 32
cvH = 0x20; #16진수 32
print(cvB)
print(cvO)
print(cvH)
결과

변환할려는 진수를 벗어나게 되면 에러가 발생합니다.
예) 0b3 -> 2진수를 벗어나는 숫자
에러발생 -> SyntaxError: invalid token
format(number, [notation]) 함수로 진수 출력하기
format 함수로 10진수, 2진수, 8진수, 16진수를 출력할 수 있습니다.
print("### format ###")
print('{:#o}'.format(10))
print('{:#x}'.format(10))
print('{:#b}'.format(10))
print("### format, notation ###")
print(format(10, 'b')) #2진수 변환
print(format(10, 'o')) #8진수 변환
print(format(10, 'x')) #16진수 변환
결과

진번 변환 함수 만들기
def convertBase(number, base):
T="0123456789ABCDEF"
i,j=divmod(number,base)
if i==0:
return T[j]
else:
return convertBase(i,base)+T[j]
inputNumber= 50
print("%d to bin => %s" % (inputNumber, convertBase(inputNumber,2)))
print("%d to oct => %s" % (inputNumber, convertBase(inputNumber,8)))
print("%d to hex => %s" % (inputNumber, convertBase(inputNumber,16)))
'언어 > Python' 카테고리의 다른 글
[Python] 파이썬 try except / raise 예외처리 개념이해 (0) | 2020.05.14 |
---|---|
[Python] 파이선 주석 사용법(한줄/여러줄/단축키) (0) | 2020.05.13 |
[Python]파이썬 사칙연산 완전정복[7가지연산자] (0) | 2020.05.05 |
[Python]파이썬 must be str not int 오류 해결 (0) | 2020.04.29 |
[PYTHON] 파이썬 for문(반복문) 돌리기 예제 (0) | 2020.04.27 |