[PYTHON] 파이썬 10진수 변환(2진수,8진수,16진수)

파이썬 진수 변환 방법

파이썬은 기본적으로 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)))

 

댓글

Designed by JB FACTORY