반응형
안녕하세요. pow함수가 음수제곱도 지원하는 줄 알고 프로그래밍하다가 4시간을 날려먹은 한노입니다. 그말 그대로 pow함수는 음수의 제곱을 구할 수 없습니다! pow함수의 지수값에 음수를 넣으면 0을 리턴하게 되죠. 하지만 조금만 생각해보면 pow함수로 음수의 제곱을 계산할 수 있게되죠.
2의 제곱 - 2 4 8 16
2의 음의제곱 - 1/2 1/4 1/8 1/16
보면 감이 오시나요? 1을 어떤 수의 제곱으로 나누면, 그 어떤 수의 음의 제곱값을 알 수 있습니다!
그럼 이를 프로그램으로 구현해보겠습니다.
if(지수값>=0)1*pow(2,지수값);
else 1/pow(2,fabs(지수값));
참 쉽죠?
참고로 fabs는 수의 절대값을 구하는 함수입니다! 위 예제에서는 지수값의 절대값을 구해 pow함수가 제대로 동작할 수 있게 해주죠.
그럼 저처럼 시간낭비하시는 일 없으시길 바라며 글 마무리합니다.
반응형
'프로그래밍 > C' 카테고리의 다른 글
[C언어]리눅스 Modbus통신 RS485 Read input registers (0) | 2020.10.01 |
---|---|
[C언어] C, C++ 코드실행시간 측정하기 (0) | 2020.10.01 |
[C언어]부동소수점으로 저장된 데이터를 정수형으로 바꾸기 (0) | 2020.09.30 |
[C언어]CMD Printf 고급 스킬! (c언어 커서 위치 바꾸기) (0) | 2020.09.30 |
[C언어]INI파일 사용하기 (GetPrivateProfileString) (0) | 2020.09.30 |