詳解C說話的exp()函數和ldexp()函數和frexp()函數。本站提示廣大學習愛好者:(詳解C說話的exp()函數和ldexp()函數和frexp()函數)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解C說話的exp()函數和ldexp()函數和frexp()函數正文
C說話exp()函數:e的次冪函數(以e為底的x次方值)
頭文件:
#include <math.h>
exp()用來盤算以e 為底的x 次方值,即ex 值,然後將成果前往。其原型為:
double exp(double x);
【前往值】前往 e 的x 次方盤算成果。
留意,應用 GCC 編譯時請參加-lm。
【實例】盤算e的10次方的值。
#include <math.h> main(){ double answer; answer = exp (10); printf("e^10 =%f\n", answer); }
運轉成果:
e^10 = 22026.465795
C說話ldexp()函數:前往x乘上2的exp次方的值
頭文件:
#include <math.h>
ldexp()用來求一個數乘上2的exp次方的值,原型為:
double ldexp(double x, int exp);
【參數】x 為尾數,exp 為冪數。
設前往值為 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); }
運算成果:
3*2^(2) = 12.000000
C說話frexp()函數:把一個浮點數分化為尾數和指數
頭文件:
#include <math.h>
frexp()用來把一個數分化為尾數和指數,其原型為:
double frexp(double x, int *exp);
【參數】x 為待分化的浮點數,exp 為存儲指數的指針。
設前往值為 ret,則 x = ret * 2exp,個中 exp 為整數,ret 的相對值在 0.5(含) 到 1(不含) 之間。
假如 x = 0,則 ret = exp = 0
【前往值】將尾數 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; }
輸入成果:
8.000000 = 0.500000 * 2^4將第 7 行 param 的值改成 242.354,則輸入成果為:
242.354000 = 0.946695 * 2^8