将VS2013的C/C++标准库math中的59个函数过一遍

Posted 昊虹图像算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将VS2013的C/C++标准库math中的59个函数过一遍相关的知识,希望对你有一定的参考价值。

为了更好的用计算机帮助我们运算,首先要了解自己使用的库中有什么方法,否则就会做会多费力不讨好的重复工作。

本篇博文我们来了解C/C++标准库的math函数,以VS2013为例。

官方文档链接可查阅博文 https://blog.csdn.net/wenhao_ir/article/details/125642013

第三方比较好的文档:https://www.nhooo.com/cpp/cpp-library-function-cmath.html

math.h文件在下面的路径中:

E:\\Program Files\\VS2013\\VC\\include\\math.h


这个math.h文件百度网盘下载链接:
https://pan.baidu.com/s/1TJH0Zo4cRHsGwbYlNIiLdw?pwd=gxi5

打开它,然后从469行开始遍历一遍这里面的函数。

在C++的代码中建议引用文件cmath

VS2013中的cmath百度网盘下载链接:
https://pan.baidu.com/s/1NZClfWR5ARG0WNdOOe0mZQ?pwd=wb7i

#include <cmath>

引入文件cmath的作用:它包括标准 C 库标头 <math.h> ,并将关联的名称添加到 std 命名空间。
从件cmath的内容和作用来看,最终咱们要遍历的函数的声明和原型还是在math.h中,所以我们还是遍历math.h。

目录

001-int abs(int _X):返回int _X的绝对值

说明:如果对浮点数取绝对值,用第020个函数fabs()
示例代码:略。

002-long labs(long _X):返回long _X的绝对值

说明和示例代码:略。

003-long long llabs(long long _X):返回long long _X的绝对值

说明和示例代码:略。

004-double acos(double _X):返回double _X的反余弦值

说明和示例代码:略。

005-double acosh(double _X):返回double _X的反双曲余弦值

说明和示例代码:略。

006-double asin(double _X):返回double _X的反正弦值

说明和示例代码:略。

007-double asinh(double _X):返回double _X的反双曲正弦值

说明和示例代码:略。

008-double atan(double _X):返回double _X的反正切值

说明和示例代码:略。

009-double atanh(double _X):返回double _X的反双曲正切值

说明和示例代码:略。

010-double atan2(double y, double x):返回给定的y及x坐标值的反正切值 atan(y/x)

详情见博文 https://blog.csdn.net/wenhao_ir/article/details/125607783中的4-04函数

011-double cbrt(double _X):返回double _X的立方根

说明和示例代码:略。

012-double copysign(double _X, double _Y):返回一个由 _X,的绝对值和_Y的符号组成的数

详情见博文 https://blog.csdn.net/wenhao_ir/article/details/125607783中的2-03函数

013-double cos(double _X)::返回double _X的余弦值

说明和示例代码:略。

014-double cosh(double _X):返回double _X的双曲余弦值

说明和示例代码:略。

015-double erf(double _X):返回double _X的误差函数值

关于误差函数,参考下面这两个链接:
https://blog.csdn.net/qq_32649321/article/details/122945361
https://www.docin.com/p-1190178420.html
示例代码:略。

016-double erfc(double _X):返回double _X的互补误差函数值

说明和示例代码:略。

017-double exp(double _X):返回自然常数e的_X次幂

说明和示例代码:略

018-double exp2(double _X):返回2的_X次幂

说明和示例代码:略

019-double expm1(double _X):返回自然常数e的_X次幂减1的值

说明和示例代码:略

020-double fabs(double _X):返回double _X的绝对值

说明:如果对int型取绝对值用第001个函数abs()
示例代码:略

021- double fdim(double _X, double _Y):返回x和y之间的正数差


示例代码:略

022-double fma(double _X, double _Y, double _Z):返回 (x * y) + z的值

说明:将两个值相乘,添加第三个值,然后舍入结果,而不会由于中间舍入而丢失任何精度。
示例代码:略

023-double fmax(double _X, double _Y):返回x或y中较大的值

说明和示例代码:略

024-double fmin(double _X, double _Y):返回x或y中较小的值

说明和示例代码:略

025-double fmod(double _X, double _Y):fmod 返回x/y的余数

说明和示例代码:略

026-int ilogb(double _X):返回x的以2为底的对数值,并将这个对数值转化为int型

说明和示例代码:略

027-double lgamma(double _X):返回伽玛函数在x处的值的绝对值的自然对数

说明和示例代码:略

028-long long llrint(double _X):使用当前舍入模式和方向将指定浮点值舍入到最接近的整数值。

详细的说明和示例代码见博文 :https://blog.csdn.net/cumubi7552/article/details/107794824
C ++中的lrint()函数使用当前的舍入模式将参数舍入为整数值。当前的舍入模式由fesetround()函数确定。

029-long long llround(double _X):将浮点值舍入为最接近的整数(应该是四舍五入吧?)

说明和示例代码:略

030-double log(double _X):返回x以自然数e为底的对数值

说明和示例代码:略

031-double log10(double _X):返回x以10为底的对数值

说明和示例代码:略

032-double log1p(double _X):返回(x+1)以自然数e为底的对数值

说明和示例代码:略

033-double log2(double _X):返回x以2为底的对数值

说明和示例代码:略

034-double logb(double _X):返回|x|以FLT_RADIX值为底数的对数值

通常,FLT_RADIX为2,因此对于正数值,logb()等效于log2()
示例代码:略

035-long lrint(double _X):使用当前舍入模式和方向将指定浮点值舍入到最接近的整数值。

说明:函数lrint()与函数llrint()最大的细微差别在于返回值类型的不对,函数lrint()的返回值类型为long,而函数llrint()的返回值类型为long long型。

036-long lround(double _X):返回最接近参数(应该是四舍五入)的long int值

说明和示例代码:略

037-double nan(const char *):返回NaN值

说明:如果字符串为空,则nan()函数将返回通用NaN值。如果字符串不为空,则返回基于字符串的NaN值
详情见链接:https://www.nhooo.com/cpp/cpp-library-function-cmath-nan.html

038-double nearbyint(double _X):将指定的浮点值舍入为整数

舍入方式为fegetround()函数指示舍入的方法。
示例代码:略

039-double nextafter(double _X, double _Y):返回x在y方向上的下一个可表示值

说明和示例代码:略

040-double nexttoward(double _X, long double _Y):返回x在y方向上的下一个可表示值

nextafter()和nexttoward()的细微不同在于输入参数y的类型。

041-double pow(double _X, double _Y):返回x的y次方幂值

说明和示例代码:略

042-double remainder(double _X, double _Y):计算两个浮点值的商的余数

感觉这个的计算方法应该是和博文 https://blog.csdn.net/wenhao_ir/article/details/125607783中的方法是一样的。应该同样不是常规余数。

043-double remquo(double _X, double _Y, int *_Z):计算x / y的浮点余数,并且还将商存储到传递给它的指针

说明和示例代码:略

044-double rint(double _X):使用当前的舍入模式将参数舍入为整数值

C ++中的rint()函数使用当前的舍入模式将参数舍入为整数值。当前的舍入模式由函数fesetround()确定。
说明:函数rint()与函数lrint()和函数llrint()最大的细微差别在于返回值类型的不对,函数rint()的返回值和double型、函数lrint()的返回值类型为long,而函数llrint()的返回值类型为long long型。

示例代码:略

045-double round(double _X):返回最接近参数的整数值(这个是四舍五入吧)

说明和示例代码:略

046-double scalbln(double _X, long _Y):将浮点数x乘以 FLT_RADIX的y次整数幂

说明和示例代码:略

047-double scalbn(double _X, int _Y):将浮点数x乘以 FLT_RADIX的y次整数幂

要注意:scalbln()的y为long型,scalbn()的y为int型。
示例代码:略

048-double sin(double _X):返回x的正弦值

说明和示例代码:略

049-double sinh(double _X):返回X的双曲正弦值

说明和示例代码:略

050-double sqrt(double _X): 返回X的平方根

说明和示例代码:略

051-double tan(double _X):返回X的正切值

说明和示例代码:略

052-double tanh(double _X): 返回X的双曲正切值

说明和示例代码:略

053-double tgamma(double _X):返回伽玛函数在x处的值

说明和示例代码:略

054-double trunc(double _X):返回X的整数部分

说明和示例代码:略

055-double atof(const char *_String):将字符串转换为双精度浮点值

56-double ceil(double _X):将x向正无穷方向舍入到最接近的整数

说明和示例代码:略

57-double floor(double _X):向负无穷方向近似取整

说明和示例代码:略

58-double frexp(double _X, int * _Y):返回x的尾数和指数

详情见博文 https://blog.csdn.net/wenhao_ir/article/details/125607783中的第2-08点。与2-08点不同的是这里是把结果存储在整型数组Y中。
示例代码:略

59-double ldexp(double _X, int exp):返回x * (2^exp)的值

标题中不太好写公式,实际上这个函数做了下面这个事:
y = x ∗ 2 e x p y=x*2^exp y=x2exp
示例代码:略

至此,将VS2013的C/C++标准库math中的函数过了一遍。
本来是想附一些示例代码的,但是因为自己遍历一遍Python中的math库了,详情见 https://blog.csdn.net/wenhao_ir/article/details/125607783,Python中的math库也是按C/C++的标准来写的,所以对每个函数的使用和作用一看就知道了,也就感觉没必要给示例代码了。

以上是关于将VS2013的C/C++标准库math中的59个函数过一遍的主要内容,如果未能解决你的问题,请参考以下文章

Python3.9标准库math中的函数汇总介绍(53个函数和5个常数)

求问vs2013怎么添加静态库,试了两种方法都有问题

c/c++标准库中的文件操作总结

C/C++标准库之numeric

vs2013的语言库与vc++的语言库的不同都有哪些?

封装socketclient动态链接库