python 은 기본적으로 10진수 이기 때문에 다른 진수의 경우에는 아래와 같이 접두어가 붙게 됩니다.
진수 | 표현 |
---|---|
2진수 | 0b |
8진수 | 0o |
16진수 | 0x |
10진 수에서 다른 진수로 변환
bin(), oct(), hex() 내장 함수의 사용
n = 10
# 2진수
b = bin(n)
print(b)
## 출력 값 : 0b1010
# 8진수
o = oct(n)
print(o)
## 출력 값 : 0o12
# 16진수
h = hex(n)
print(h)
## 출력 값 : 0xa
- 출력 값은 모두 srt로 출력됩니다.
- 각각의 출력 값에 접두어가 붙어서 출력되는 것을 볼 수 있습니다.
format() 내장 함수의 사용
n = 10
# 2진수
b = format(n, '#b')
print(b)
## 출력 값 : 0b1010
# 8진수
o = format(n, '#o')
print(o)
## 출력 값 : 0o12
# 16진수
x = format(n, '#x')
print(x)
## 출력 값 : 0xa
- 출력 값은 모두 srt로 출력됩니다.
- format 함수를 사용했을 때도, 위의 결과와 동일한 결과를 얻을 수 있습니다.
- 조금 다른 점은 16진수에서 'h' 가 아니라 'x'를 사용한다는 점입니다.
- 만약 접두어를 제외해서 출력하고 싶다면, 아래와 같이 ' # '을 제외하고 사용하면 됩니다.
n = 10
# 2진수
b = format(n, 'b')
print(b)
## 출력 값 : 1010
# 8진수
o = format(n, 'o')
print(o)
## 출력 값 : 12
# 16진수
x = format(n, 'x')
print(x)
## 출력 값 : a
- 16진수의 출력 값을 대문자로 얻고 싶다면. upper()를 통해 대문자로 바꿔주면 됩니다.
- 반대로, 대문자가 출력되었는데 소문자를 얻고 싶다면. lower()을 사용하면 됩니다.
# 16진수
x = format(n, 'x')
print(x.upper())
## 출력 값 : A
x = format(n, 'x')
print(x.lower())
## 출력 값 : a
문자열. format() 사용
n = 10
# 2진수
b = "{0:#b}".format(n)
print(b)
## 출력 값 : 0b1010
# 8진수
o = "{0:#o}".format(n)
print(o)
## 출력 값 : 0o12
# 16진수
x = "{0:#x}".format(n)
print(x)
## 출력 값 :0xa
다른 진수에서 10진수로 변환
- 이번엔 2진수, 8진수, 16진수를 10진수로 변환하는 방법입니다.
- 2, 8, 16 진수는 문자형이고, 반환되는 10진수 출력 값은 정수형이 됩니다.
- 형식은 아래와 같이, int ('반환하고자 하는 수', 반환하고자 하는 진수)의 형식을 가집니다.
# 2진수
b = int('0b1010', 2)
print(b)
# 8진수
o = int('0o12', 8)
print(o)
# 16진수
x = int('0xa', 16)
print(x)
## 출력 값 : 10
다른 진수에서 다른 진수로 변환
문자열. format()을 사용
- 2진수에서 8, 10, 16 진수로 변환한 예시입니다.
n = 0b1010
# 2진수 -> 8진수
o_2 = "{0:#o}".format(n)
print(o_2)
## 출력 값 : 0b1010
# 2진수 -> 10진수
d_2 = "{0:#d}".format(n)
print(d_2)
## 출력 값 : 0o12
# 2진수 -> 16진수
x_2 = "{0:#x}".format(n)
print(x_2)
## 출력 값 :0xa
- 8진수에서 2, 10, 16 진수로 변환한 예시입니다.
n = 0o12
# 8진수 -> 2진수
o_8 = "{0:#b}".format(n)
print(o_8)
## 출력 값 : 0b1010
# 8진수 -> 10진수
d_8 = "{0:#d}".format(n)
print(d_8)
## 출력 값 : 10
# 8진수 -> 16진수
x_8 = "{0:#x}".format(n)
print(x_8)
## 출력 값 :0xa
- 16진수에서 2, 10, 8 진수로 변환한 예시입니다.
n = 0xa
# 16진수 -> 2진수
o_16 = "{0:#b}".format(n)
print(o_16)
## 출력 값 : 0b1010
# 16진수 -> 10진수
d_16 = "{0:#d}".format(n)
print(d_16)
## 출력 값 : 10
# 16진수 -> 8진수
x_16 = "{0:#o}".format(n)
print(x_16)
## 출력 값 :0o12
str(), oct(), hex(), bin() 내장 함수 사용
- 2진수에서 8, 10, 16 진수로 변환한 예시입니다.
n = 0b1010
# 2진수 -> 8진수
o_2 = oct(n)
print(o_2)
## 출력 값 : 0o12
# 2진수 -> 10진수
s_2 = str(n)
print(s_2)
## 출력 값 : 10
# 2진수 -> 16진수
h_2 = hex(n)
print(h_2)
## 출력 값 : 0xa
- 8진수에서 2, 10, 16 진수로 변환한 예시입니다.
n = 0o12
# 8진수 -> 2진수
o_8 = bin(n)
print(o_8)
## 출력 값 : 0b1010
# 8진수 -> 10진수
s_8 = str(n)
print(s_8)
## 출력 값 : 10
# 8진수 -> 16진수
h_8 = hex(n)
print(h_8)
## 출력 값 : 0xa
- 16진수에서 2, 8, 10 진수로 변환한 예시입니다.
n = 0xa
# 16진수 -> 2진수
o_16 = bin(n)
print(o_16)
## 출력 값 : 0b1010
# 16진수 -> 8진수
h_16 = oct(n)
print(h_16)
## 출력 값 : 10
# 16진수 -> 10진수
s_16 = str(n)
print(s_16)
## 출력 값 : 0xa
728x90
반응형
'Tech > Python' 카테고리의 다른 글
[python] 소수점 이하 자릿수 포함 출력 방법 (0) | 2020.12.24 |
---|---|
[python] count 함수 (2) | 2020.12.20 |
[python] random 함수 (0) | 2020.12.20 |
[python] 재귀 함수 (0) | 2020.12.17 |
[python] decimal 모듈 (0) | 2020.12.17 |