#05-파이썬 기초 실습 - 진수변환

2020. 1. 16. 10:20AI & BigData/Python Basics

파이썬 기초 실습 - 진수변환

진수변환

  • 2진수 : 0b

  • 8진수 : 0o

  • 16진수 : 0x

  • 우리가 흔하게 사용하는 0~9 , 10,100,123 같은 숫자는 10진수라고 합니다.

  • 파이썬에서는 10진수 말고도 2진수와 8진수 16진수도 사용할수있습니다.

  • 진수 변환에는 위와 같이 기호가 있습니다.

  • 각 진수의 값이 초과가 되거나 잘못 표기가 되면 오류가 발생하기도 합니다.

In [1]:

# 2진수를 표현합니다.
0b11111111

Out[1]:

255

In [2]:

0o377

Out[2]:

255

In [3]:

0xFF

Out[3]:

255

In [4]:

255 == 0b11111111

Out[4]:

True

In [5]:

255 == 0o377

Out[5]:

True

In [6]:

255 == 0xFF

Out[6]:

True

In [7]:

255 == 0xff

Out[7]:

True

파이썬은 bin(), oct(), hex() 라는 내장 함수를 제공하고 있습니다.

In [8]:

# 10진수를 2진수로 변환 합니다.
bin(255)

Out[8]:

'0b11111111'

In [9]:

# 2진수를 8진수로 변환합니다.
oct(0b11111111)

Out[9]:

'0o377'

In [10]:

# 2진수를 16진수로 변환합니다.
hex(0b11111111)

Out[10]:

'0xff'

In [11]:

# str를 이용하여 2진수를 10진수로 변환할수 있습니다.
str(0b11111111)

Out[11]:

'255'

문자열을 숫자형으로 변환할수도 있습니다.

In [12]:

# 문자열 2진수를 10진수로 변환
int('0b11111111',2)

Out[12]:

255

In [13]:

# 문자열 8진수를 10진수로 변환
int('0o377',8)

Out[13]:

255

In [14]:

# 문자열 16진수를 10진수로 변환
int('0xff',16)

Out[14]:

255

format() 내장 함수를 이용하여 숫자를 다른 진수의 문자열로 바꿀수있음.

In [15]:

# 10진수를 2진수로 변환
format(255,'b')

Out[15]:

'11111111'

In [16]:

# 10진수를 8진수로 변환
format(255,'o')

Out[16]:

'377'

In [17]:

# 10진수를 소문자 16진수로 변환
format(255,'x')

Out[17]:

'ff'

In [18]:

# 10진수를 대문자 16진수로 변환
format(255,'X')

Out[18]:

'FF'

In [19]:

# 10진수를 그대로 표시할때도 사용함..
format(255,'d')

Out[19]:

'255'

접두어를 포함시킬수도 있습니다.

In [20]:

print('10진수 데이터를  2진수로 변환 : ' + format(255,'#b'))
print('10진수 데이터를  8진수로 변환 : ' + format(255,'#o'))
print('10진수 데이터를 16진수로 소문자 변환 : ' + format(255,'#x'))
print('10진수 데이터를 16진수로 대문자 변환 : ' + format(255,'#X'))
print('10진수 데이터를 그대로 표시 : ' + format(255,'#d'))
10진수 데이터를  2진수로 변환 : 0b11111111
10진수 데이터를  8진수로 변환 : 0o377
10진수 데이터를 16진수로 소문자 변환 : 0xff
10진수 데이터를 16진수로 대문자 변환 : 0XFF
10진수 데이터를 그대로 표시 : 255

In [21]:

# 8진수 출력 방법
print('{:#o}'.format(10))
0o12

In [22]:

# 16진수 출력 방법
print('{:#x}'.format(10))
0xa

In [23]:

# 2진수 출력 방법
print('{:#b}'.format(10))
0b1010

In [ ]: