詳解C語言的exp()函數(shù)和ldexp()函數(shù)以及frexp()函數(shù)
C語言exp()函數(shù):e的次冪函數(shù)(以e為底的x次方值)
頭文件:
#include <math.h>
exp()用來計算以e 為底的x 次方值,即ex 值,然后將結(jié)果返回。其原型為:
double exp(double x);
【返回值】返回 e 的x 次方計算結(jié)果。
注意,使用 GCC 編譯時請加入-lm。
【實例】計算e的10次方的值。
#include <math.h> main(){ double answer; answer = exp (10); printf("e^10 =%f\n", answer); }
運行結(jié)果:
e^10 = 22026.465795
C語言ldexp()函數(shù):返回x乘上2的exp次方的值
頭文件:
#include <math.h>
ldexp()用來求一個數(shù)乘上2的exp次方的值,原型為:
double ldexp(double x, int exp);
【參數(shù)】x 為尾數(shù),exp 為冪數(shù)。
設(shè)返回值為 ret,則 ret = x * 2exp
【返回值】返回 ret。
注意,使用 GCC 編譯時請加入-lm。
【范例】計算3*(2^2) 的值。
#include <math.h> main(){ int exp; double x, answer; answer = ldexp(3, 2); printf("3*2^(2) = %f\n", answer); }
運算結(jié)果:
3*2^(2) = 12.000000
C語言frexp()函數(shù):把一個浮點數(shù)分解為尾數(shù)和指數(shù)
頭文件:
#include <math.h>
frexp()用來把一個數(shù)分解為尾數(shù)和指數(shù),其原型為:
double frexp(double x, int *exp);
【參數(shù)】x 為待分解的浮點數(shù),exp 為存儲指數(shù)的指針。
設(shè)返回值為 ret,則 x = ret * 2exp,其中 exp 為整數(shù),ret 的絕對值在 0.5(含) 到 1(不含) 之間。
如果 x = 0,則 ret = exp = 0
【返回值】將尾數(shù) ret 返回。
注意,使用 GCC 編譯時請加入-lm。
請看下面的代碼:
#include <stdio.h> /* printf */ #include <math.h> /* frexp */ int main () { double param, result; int n; param = 8.0; result = frexp (param , &n); printf ("%f = %f * 2^%d\n", param, result, n); return 0; }
輸出結(jié)果:
8.000000 = 0.500000 * 2^4
242.354000 = 0.946695 * 2^8
相關(guān)文章
C++實現(xiàn)LeetCode(59.螺旋矩陣之二)
這篇文章主要介紹了C++實現(xiàn)LeetCode(59.螺旋矩陣之二),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07