이 글에서는 파이썬 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.0math.ldexp(5, -4)→ 5 × 2⁻⁴ = 0.3125math.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 모듈의 유용한 함수입니다. 숫자형 인자만 올바르게 전달하면 정확한 부동소수점 결과를 얻을 수 있습니다.
글에 대해 궁금한 점이 있다면 댓글로 남겨주세요!