Python : Type Conversion

m_ngyeong·2024년 10월 14일
0

Python

목록 보기
16/17
post-thumbnail

🐍 Python


Type Conversion

float ➡️ int

  • math.ceil() : 소수 부분을 정수로 올려, integer로 만듦.
  • math.floor() : 소수 부분을 버리고, integer로 만듦.
  • math.trunc() : 소수 부분 버림.
  • round() : 반올림, 소수 0.5 이하는 버리고, 0.5를 초과하면 올림.

정수를 각 진수의 형태로 표현

# 2진수
print(25 == 0b11001)  # True

# 8진수
print(25 == 0o31)  # True

# 16진수
print(25 == 0x19)  # True

정수를 각 진수의 형태의 문자열로 변환

❶ 변환하는 방법 : bin()oct()hex()

파이썬은 bin()oct()hex()라는 내장 함수를 제공한다. 이 함수를 통해서 숫자를 각 진수의 형태의 문자열로 변환할 수 있다.

# 2진수
print(bin(25))  # 0b11001

# 8진수
print(oct(25))  # 0o31

# 16진수
print(hex(25))  # 0x19

❷ 변환하는 방법 : format()

format()을 사용하여 2진수, 8진수, 16진수로 변환된 문자열을 출력할 수 있다.

  • 진법 변환 포맷팅 :
    • d: 10진수
    • b: 2진수
    • o: 8진수
    • x: 16진수 (소문자)
    • X: 16진수 (대문자)
# 10진수
print(format(43, 'd'))  # 43

# 2진수
print(format(43, 'b'))  # 101011

# 8진수
print(format(43, 'o'))  # 53

# 16진수
print(format(43, 'x'))  # 2b
print(format(43, 'X'))  # 2B
접두어 포함

접두어를 포함하여 출력하고자 하면 두번째 인자 앞에 #만 붙여주면 된다.

# 10진수
print(format(43, '#d'))  # 43

# 2진수
print(format(43, '#b'))  # 0b101011

# 8진수
print(format(43, '#o'))  # 0o53

# 16진수
print(format(43, '#x'))  # 0x2b
print(format(43, '#X'))  # 0X2B

문자열을 다시 정수형으로 변환

파이썬에서 bin(), oct(), hex() 함수로 변환된 2진수, 8진수, 16진수 문자열을 다시 정수로 변환하려면, int() 함수를 사용할 수 있다. int() 함수는 문자열과 함께 변환하려는 진법(기수)을 인자로 받아 그 값을 정수로 변환한다.

❶ 변환하는 방법 : int()

  • int(문자열, 기수): 문자열을 해당 기수(진법)를 사용하여 정수로 변환.
    • 2진수 → int(문자열, 2)
    • 8진수 → int(문자열, 8)
    • 16진수 → int(문자열, 16)
# 2진수로 변환된 문자열
binary_str = bin(10)  # '0b1010'
# 다시 정수로 변환
num_from_bin = int(binary_str, 2)
print(num_from_bin)  # 출력: 10


# 8진수로 변환된 문자열
octal_str = oct(10)  # '0o12'
# 다시 정수로 변환
num_from_oct = int(octal_str, 8)
print(num_from_oct)  # 출력: 10


# 16진수로 변환된 문자열
hex_str = hex(10)  # '0xa'
# 다시 정수로 변환
num_from_hex = int(hex_str, 16)
print(num_from_hex)  # 출력: 10
  • 0b, 0o, 0x 접두사 처리 :
    • bin() 함수는 결과에 0b, oct() 함수는 0o, hex() 함수는 0x 접두사를 붙임.
    • 이 접두사를 int() 함수는 자동으로 인식하여 처리하므로, 문자열에 0b, 0o, 0x 접두사가 있어도 그대로 사용해도 됨.

아스키 코드(ASCII Code)로 변환

  • 문자열 → 아스키 코드 : ord()
  • 아스키 코드 → 문자열 : chr()
print(ord('z'))  # 122
print(chr(90))  # Z

ASCII Code Table : https://www.ascii-code.com/ASCII



참고,
https://www.daleseo.com/python-int-bases/

profile
ʚȉɞ

0개의 댓글