Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 ldexp() 함수 완벽 가이드: 개념부터 활용 예제까지

이 글에서는 파이썬 math 라이브러리에 포함된 ldexp() 함수의 사용법을 자세히 알아봅니다.

ldexp() 함수란?

ldexp(first, second) 함수는 두 개의 유효한 숫자(양수 또는 음수)를 인자로 받아 first × (2 ** second) 연산 결과를 반환합니다. 즉, 첫 번째 인자에 2의 거듭제곱을 곱한 값을 계산하는 함수입니다. 이 함수는 부동소수점 연산이나 비트 단위의 수치 조작이 필요할 때 유용하게 사용됩니다.

구체적인 예제를 통해 살펴보겠습니다.

사용 예제

# math 라이브러리 임포트
import math

# ldexp 함수 사용
print(math.ldexp(1, 4))
print(math.ldexp(5, -4))
print(math.ldexp(-3, -1))

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

  • math.ldexp(1, 4) → 1 × 2⁴ = 16.0
  • math.ldexp(5, -4) → 5 × 2⁻⁴ = 0.3125
  • math.ldexp(-3, -1) → -3 × 2⁻¹ = -1.5

출력 결과

16.0
0.3125
-1.5

타입 오류 발생 사례

ldexp() 함수에 숫자가 아닌 인자를 전달하면 오류가 발생합니다. 특히 두 번째 인자는 반드시 정수(int)여야 합니다. 문자열 형태의 숫자를 전달하는 경우를 살펴보겠습니다.

예제

# math 라이브러리 임포트
import math

# ldexp 함수에 문자열 인자 전달
print(math.ldexp(1, '4'))

위 코드를 실행하면 다음과 같은 TypeError가 발생합니다.

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
3
4 # using the function ldexp
----> 5 print(math.ldexp(1, '4'))

TypeError: Expected an int as second argument to ldexp.

오류 메시지에서 알 수 있듯이, ldexp() 함수의 두 번째 인자로는 정수만 허용됩니다. 문자열 '4'를 전달하면 값이 같아 보여도 타입이 다르기 때문에 오류가 발생하는 것입니다. 따라서 사용 전에 인자의 타입을 반드시 확인해야 합니다.

정리

파이썬의 ldexp() 함수는 첫 번째 인자에 2의 거듭제곱을 곱한 값을 손쉽게 계산해 주는 math 모듈의 유용한 함수입니다. 숫자형 인자만 올바르게 전달하면 정확한 부동소수점 결과를 얻을 수 있습니다.

글에 대해 궁금한 점이 있다면 댓글로 남겨주세요!