본문 바로가기

오늘의 공부/코딩테스트

[python] 진수 표현법

파이썬은 기본적으로 10진수로 출력된다.



# 10진수 -> n진수 표기

a = 10


#10진수 -> 8진수 문자열0o
b = oct(a)
>> 0o12


#10진수 -> 16진수 문자열
c = hex(a)
>> 0xa


#10진수 -> 2진수 문자열
d = bin(a)
>>0b1010



#n진수 -> 10진수 표기


#8진수 문자열 -> 10진수 정수형
_b = int(0o12, 8)

#16진수 문자열 -> 10진수 정수형
_c = int(0xa, 16)


#2진수 문자열 -> 10진수 정수형
_d = int(0b1010, 2)

#print, format() 함수를 이용하여 진수표기


#10진수
print('{}'.format(10))


#8진수

print('%o' % 10)

>> 12

print('#o {:#o}'.format(10))
>>#o 0o12

 


#16진수

#n = 255

print('%x' % n)

>> ff

print('%X' % n)

>> FF

 

print('#x {:#x}'.format(10))
>> #x 0xff

 


#2진수

print('b %b' % n)

>>?????? 안나옴

print('#b {:#b}'.format(10))

>> #b 0b1010

 

 

# 접두어를 뺀 변환된 값만 필요하면 앞의 #을 빼면 된다.

print('o {:o}'.format(10))

>>12

 

 

Q. 언제 n 진수가 필요한가?

컴퓨터는 2진수 연산처리를 한다.

4진수, 16진수는 2진수와 자릿수가 맞아 떨어져 표시할 수 있는 자리수가 줄어 공간을 아낄 수 있다.

또한 최근 나오는 컴퓨터는 최소처리단위가 8bit인 것도 한 몫을 한다.

 

즉, 

비트단위 처리가 중요하다면 16진수를 많이 쓰고, 사람이 편하게 숫자계산 한다면 10진수를 사용한다.