프로그래밍 문법/python

파이썬 진수변환 (10진수를 n진수로, n진수를 10진수로)

씩씩한 IT블로그 2020. 6. 19. 21:23
반응형

진수를 변환하는 방법은 다음과 같다

10진수를 n(2,8,16)진수로 바꾸는방법

10진수 x를 2진수로 바꾸려면 bin(x) , 

10진수 x를 8진수로 바꾸려면 oct(x)

10진수 x를 16진수로 바꾸려면 hex(x)

<입력>

print(bin(11))
print(oct(11))
print(hex(11))

<출력>

타입은 모두 스트링

0b1011 (2진법은 앞에 0b가 붙는다)
0o13 (8진법은 앞에 0o가 붙는다)
0xb (16진법은 앞에 0x가 붙는다)

 

* 2,8,16 진수가 아닌 다른 진수로 바꾸고 싶으면 다음 함수를 이용한다.

def convert(n, base):
    '''
    n: base진수로 바꿀 10진수
    base : 진수 
    '''
    q, r = divmod(n, base)
    if q == 0:
        return str(r)
    else:
        return convert(q, base) + str(r)

 

 

n(2,8,16)진수를 10진수로 바꾸는방법

n진수 y를 10진수로 바꾸고 싶을때?

두가지 방법이 있다.

1. int("y",n) 

2. int(y)

당연히 2번을 하는게 깔끔하다

#11의 8진수는 0o13
#13의 16진수는 0xd

print(int("0o13",8))
print(int(0o13))

print(int("0xd",16))
print(int(0xd))
11
11
13
13
반응형