当前位置: 首页 > news >正文

福鼎网站建设培训网网站设计

福鼎网站建设培训,网网站设计,wordpress完全开源么,WordPress偷模板数值运算相关 一、概述二、常用数学函数1. 基础运算1. 浮点值的绝对值#xff08; |x| #xff09;2. 浮点除法运算的余数3. 除法运算的有符号余数4. 除法运算的有符号余数和最后三个二进制位5. 混合的乘加运算6. 两个浮点值的较大者7. 两个浮点值的较小者8. 两个浮点值的正数… 数值运算相关 一、概述二、常用数学函数1. 基础运算1. 浮点值的绝对值 |x| 2. 浮点除法运算的余数3. 除法运算的有符号余数4. 除法运算的有符号余数和最后三个二进制位5. 混合的乘加运算6. 两个浮点值的较大者7. 两个浮点值的较小者8. 两个浮点值的正数差 max(0, x-y) 2. 指数函数1. 返回 e 的给定次幂 e^x^ 2. 返回 2 的给定次幂 2^x^ 3. 返回 e 的给定次幂减一 e^x^-1 4. 自然以 e 为底对数 ln(x) 5. 常用以 10 为底对数 log~10~(x) 6. 给定数值的以 2 为底的对数 log~2~(x) 7. 加上给定数值的自然以 e 为底对数 ln(1x) 3. 幂函数1. 求某数的给定次幂 x^y^ 2. 计算平方根 √x 3. 计算立方根 3√x 4. 计算两个给定数的平方和的平方根 √x^2^y^2^ 4. 三角函数1. 计算正弦 sin(x) 2. 计算余弦 cos(x) 3. 计算正切 tan(x) 4. 计算反正弦 arcsin(x) 5. 计算反余弦 arccos(x) 6. 计算反正切 arctan(x) 7. 反正切用符号确定象限 5. 双曲函数1. 计算双曲正弦 sinh(x) 2. 计算双曲余弦 cosh(x) 3. 计算双曲正切 tanh(x) 4. 计算反双曲正弦 arsinh(x) 5. 计算反双曲余弦 arcosh(x) 6. 计算反双曲正切 artanh(x) 6. 误差与伽马函数1. 误差函数2. 补误差函数3. gamma 函数4. gamma 函数的自然对数 7. 最接近整数的浮点运算1. 不小于给定值的最接近整数值2. 不大于给定值的最接近整数3. 绝对值不大于给定值的最接近整数4. 最接近整数中间情况下向远离零舍入5. 使用当前舍入模式的最接近整数6. 使用当前舍入模式的最接近整数 8. 浮点操作函数9. 分类与比较 三、宏常量1. 常规2. 分类 四、错误处理 一、概述 C为我们提供了很多已经定义好的一些数学函数这些函数的使用一定要注意函数的定义域因为计算机表示的数据有限有些非法的运算的结果也是在数值运算库中定义好了的。 二、常用数学函数 在标准库中基本上提供了对于 float、double、long double 类型参数的输入、也有对应的参数 float、double、long double 的输出。就像下面的可以看得出来 不带 任何的后缀是有3个类型的重载、带 ‘f’ 的指定了强制 float 类型、带 ‘l’ 的强制指定了 long double 类型。基本上下面提到的函数都会有这些后缀以满足不同精度的需求。 float fmod ( float x, float y ); double fmod ( double x, double y ); long double fmod ( long double x, long double y ); float fmodf( float x, float y ); long double fmodl( long double x, long double y );1. 基础运算 1. 浮点值的绝对值 |x| 基础定义 就是求一个数值的绝对值 double abs( double arg );abs(float x) fabs fabsf fabsl 此函数不受制于任何指定于 math_errhandling 的错误条件。 若实现支持 IEEE 浮点算术 IEC 60559 则 若输入参数为 ±0 则返回 0若输入参数为 ±∞ 则返回 ∞若输入参数为 NaN 则返回 NaN 示例 #include iostream #include cmathint main() {std::cout abs(3.0) std::abs(3.0) \n abs(-3.0) std::abs(-3.0) \n;// 特殊值std::cout abs(-0.0) std::abs(-0.0) \n abs(-Inf) std::abs(-INFINITY) \n abs(-NaN) std::abs(-NAN) \n; } //输出 abs(3.0) 3 abs(-3.0) 3 abs(-0.0) 0 abs(-Inf) inf abs(-NaN) nan2. 浮点除法运算的余数 基础定义计算除法运算 x/y 的浮点余数。有点像整数的余数运算符 % double fmod ( double x, double y );fmod fmodf fmodl #include iostream #include cmath #include cfenv#pragma STDC FENV_ACCESS ON int main() {std::cout fmod(5.1, 3.0) std::fmod(5.1,3) \n fmod(-5.1, 3.0) std::fmod(-5.1,3) \n fmod(5.1, -3.0) std::fmod(5.1,-3) \n fmod(-5.1, -3.0) std::fmod(-5.1,-3) \n;// 特殊值std::cout fmod(0.0, 1.0) std::fmod(0, 1) \n fmod(-0.0, 1.0) std::fmod(-0.0, 1) \n fmod(5.1, Inf) std::fmod(5.1, INFINITY) \n;// 错误处理std::feclearexcept(FE_ALL_EXCEPT);std::cout fmod(5.1, 0) std::fmod(5.1, 0) \n;if(std::fetestexcept(FE_INVALID))std::cout FE_INVALID raised\n; } // 输出 fmod(5.1, 3.0) 2.1 fmod(-5.1, 3.0) -2.1 fmod(5.1, -3.0) 2.1 fmod(-5.1, -3.0) -2.1 fmod(0.0, 1.0) 0 fmod(-0.0, 1.0) -0 fmod(5.1, Inf) 5.1 fmod(5.1, 0) -nanFE_INVALID raised3. 除法运算的有符号余数 基础定义此函数所计算的除法运算 x/y 的 IEEE 浮点余数准确地为值 x - n*y 其中值 n 是最接近 x/y 准确值的整数值。 |n-x/y| ½ 时选择作为偶数的 n 。与 std::fmod() 相反不保证返回值拥有与 x 相同的符号。若返回值是 0 则它拥有与 x 相同的符号。 double remainder ( double x, double y );remainder remainderf remainderl #include iostream #include cmath #include cfenv#pragma STDC FENV_ACCESS ON int main() {std::cout remainder(5.1, 3.0) std::remainder(5.1,3) \n remainder(-5.1, 3.0) std::remainder(-5.1,3) \n remainder(5.1, -3.0) std::remainder(5.1,-3) \n remainder(-5.1, -3.0) std::remainder(-5.1,-3) \n;// 特殊值std::cout remainder(-0.0, 1.0) std::remainder(-0.0, 1) \n remainder(5.1, Inf) std::remainder(5.1, INFINITY) \n;// 错误处理std::feclearexcept(FE_ALL_EXCEPT);std::cout remainder(5.1, 0) std::remainder(5.1, 0) \n;if(fetestexcept(FE_INVALID))std::cout FE_INVALID raised\n; } //输出 remainder(5.1, 3.0) -0.9 remainder(-5.1, 3.0) 0.9 remainder(5.1, -3.0) -0.9 remainder(-5.1, -3.0) 0.9 remainder(-0.0, 1.0) -0 remainder(5.1, Inf) 5.1 remainder(5.1, 0) -nanFE_INVALID raised4. 除法运算的有符号余数和最后三个二进制位 基础定义 remquo remquof remquol 5. 混合的乘加运算 基础定义计算 (x*y) z 如同用无限精度而仅舍入一次到结果类型。 double fma ( double x, double y, double z );fma fmaf fmal #include iostream #include iomanip #include cmath #include cfenv #pragma STDC FENV_ACCESS ON int main() {// 演示 fma 与内建运算符间的差别double in 0.1;std::cout 0.1 double is std::setprecision(23) in ( std::hexfloat in std::defaultfloat )\n 0.1*10 is 1.0000000000000000555112 (0x8.0000000000002p-3), or 1.0 if rounded to double\n;double expr_result 0.1 * 10 - 1;double fma_result fma(0.1, 10, -1);std::cout 0.1 * 10 - 1 expr_result : 1 subtracted after intermediate rounding\n fma(0.1, 10, -1) std::setprecision(6) fma_result ( std::hexfloat fma_result std::defaultfloat )\n\n;// fma 用于 double-double 算术double high 0.1 * 10;double low fma(0.1, 10, -high);std::cout in double-double arithmetic, 0.1 * 10 is representable as high low \n\n;// 错误处理std::feclearexcept(FE_ALL_EXCEPT);std::cout fma(Inf, 10, -Inf) std::fma(INFINITY, 10, -INFINITY) \n;if(std::fetestexcept(FE_INVALID))std::cout FE_INVALID raised\n; } //输出 0.1 double is 0.10000000000000000555112 (0x1.999999999999ap-4) 0.1*10 is 1.0000000000000000555112 (0x8.0000000000002p-3), or 1.0 if rounded to double 0.1 * 10 - 1 0 : 1 subtracted after intermediate rounding fma(0.1, 10, -1) 5.55112e-17 (0x1p-54)in double-double arithmetic, 0.1 * 10 is representable as 1 5.55112e-17fma(Inf, 10, -Inf) -nanFE_INVALID raised6. 两个浮点值的较大者 基础定义返回二个浮点数的较大者 double fmax ( double x, double y );fmax fmaxf fmaxl #include iostream #include cmathint main() {std::cout fmax(2,1) std::fmax(2,1) \n fmax(-Inf,0) std::fmax(-INFINITY,0) \n fmax(NaN,-1) std::fmax(NAN,-1) \n; } //输出 fmax(2,1) 2 fmax(-Inf,0) 0 fmax(NaN,-1) -17. 两个浮点值的较小者 基础定义返回二个浮点数的较小者 double fmin ( double x, double y );fmin fminf fminl #include iostream #include cmathint main() {std::cout fmin(2,1) std::fmin(2,1) \n fmin(-Inf,0) std::fmin(-INFINITY,0) \n fmin(NaN,-1) std::fmin(NAN,-1) \n; } //输出 fmin(2,1) 1 fmin(-Inf,0) -inf fmin(NaN,-1) -18. 两个浮点值的正数差 max(0, x-y) 基础定义返回 x 与 y 间的正差即若 xy 则返回 x-y 否则若 x≤y 返回 0 。 double fdim ( double x, double y );fdim fdimf fdiml #include iostream #include cmath #include cerrno #include cstring #include cfenv #pragma STDC FENV_ACCESS ON int main() {std::cout fdim(4, 1) std::fdim(4, 1) fdim(1, 4) std::fdim(1, 4) \n fdim(4,-1) std::fdim(4, -1) fdim(1,-4) std::fdim(1, -4) \n;// 错误处理errno 0;std::feclearexcept(FE_ALL_EXCEPT);std::cout fdim(1e308, -1e308) std::fdim(1e308, -1e308) \n;if (errno ERANGE)std::cout errno ERANGE: std::strerror(errno) \n;if (std::fetestexcept(FE_OVERFLOW))std::cout FE_OVERFLOW raised\n; } //输出 fdim(4, 1) 3 fdim(1, 4) 0 fdim(4,-1) 5 fdim(1,-4) 5 fdim(1e308, -1e308) inferrno ERANGE: Numerical result out of rangeFE_OVERFLOW raised2. 指数函数 1. 返回 e 的给定次幂 ex 基础定义 double exp ( double arg );exp expf expl 图像 2. 返回 2 的给定次幂 2x 基础定义 double exp2 ( double n );exp2 exp2f exp2l 图像 3. 返回 e 的给定次幂减一 ex-1 基础定义 double expm1 ( double arg );在这里插入代码片expm1 expm1f expm1l 图像 4. 自然以 e 为底对数 ln(x) 基础定义 double log ( double arg );log logf logl 图像 5. 常用以 10 为底对数 log10(x) 基础定义 double log10 ( double arg );log10 log10f log10l 图像 6. 给定数值的以 2 为底的对数 log2(x) 基础定义 double log2 ( double arg );log2 log2f log2l 图像 7. 加上给定数值的自然以 e 为底对数 ln(1x) 基础定义 double log1p ( double arg );log1p log1pf log1pl 图像 3. 幂函数 1. 求某数的给定次幂 xy 基础定义 double pow ( double base, double exp );pow powf powl 2. 计算平方根 √x 基础定义 double sqrt ( double arg );sqrt sqrtf sqrtl 3. 计算立方根 3√x 基础定义 double cbrt ( double arg );cbrt cbrtf cbrtl 4. 计算两个给定数的平方和的平方根 √x2y2 基础定义 double hypot ( double x, double y );hypot hypotf hypotl 4. 三角函数 1. 计算正弦 sin(x) 基础定义 double sin ( double arg );sin sinf sinl 图像 2. 计算余弦 cos(x) 基础定义 double cos ( double arg );cos cosf cosl 图像 3. 计算正切 tan(x) 基础定义 double tan ( double arg );tan tanf tanl 图像 4. 计算反正弦 arcsin(x) 基础定义 double asin ( double arg );asin asinf asinl 图像 5. 计算反余弦 arccos(x) 基础定义 double acos ( double arg );acos acosf acosl 图像 6. 计算反正切 arctan(x) 基础定义 double atan ( double arg );atan atanf atanl 图像 7. 反正切用符号确定象限 基础定义 double atan2 ( double y, double x );atan2 atan2f atan2l 5. 双曲函数 1. 计算双曲正弦 sinh(x) 基础定义 double sinh ( double arg );sinh sinhf sinhl 图像 2. 计算双曲余弦 cosh(x) 基础定义 double cosh ( double arg );cosh coshf coshl 图像 3. 计算双曲正切 tanh(x) 基础定义 double tanh ( double arg );tanh tanhf tanhl 图像 4. 计算反双曲正弦 arsinh(x) 基础定义 double asinh ( double arg );asinh asinhf asinhl 图像 5. 计算反双曲余弦 arcosh(x) 基础定义 double acosh ( double arg );acosh acoshf acoshl 图像 6. 计算反双曲正切 artanh(x) 基础定义 double atanh ( double arg );atanh atanhf atanhl 图像 6. 误差与伽马函数 1. 误差函数 erf erff erfl 2. 补误差函数 erfc erfcf erfcl 3. gamma 函数 tgamma tgammaf tgammal 4. gamma 函数的自然对数 lgamma lgammaf lgammal 7. 最接近整数的浮点运算 1. 不小于给定值的最接近整数值 基础定义计算不小于 arg 的最小整数值。 double ceil ( double arg );ceil ceilf ceill #include cmath #include iostream int main() {std::cout std::fixed floor(2.7) std::floor(2.7) \n floor(-2.7) std::floor(-2.7) \n floor(-0.0) std::floor(-0.0) \n floor(-Inf) std::floor(-INFINITY) \n; }//输出 floor(2.7) 2.000000 floor(-2.7) -3.000000 floor(-0.0) -0.000000 floor(-Inf) -inf2. 不大于给定值的最接近整数 基础定义计算不大于 arg 的最大整数值。 #include cmath #include iostream int main() {std::cout std::fixed floor(2.7) std::floor(2.7) \n floor(-2.7) std::floor(-2.7) \n floor(-0.0) std::floor(-0.0) \n floor(-Inf) std::floor(-INFINITY) \n; }//输出 floor(2.7) 2.000000 floor(-2.7) -3.000000 floor(-0.0) -0.000000 floor(-Inf) -inf3. 绝对值不大于给定值的最接近整数 基础定义计算绝对值不大于 arg 的最接近整数。 #include cmath #include iostream int main() {std::cout std::fixed trunc(2.7) std::trunc(2.7) \n trunc(-2.9) std::trunc(-2.9) \n trunc(-0.0) std::trunc(-0.0) \n trunc(-Inf) std::trunc(-INFINITY) \n; }// 可能的输出 trunc(2.7) 2.000000 trunc(-2.9) -2.000000 trunc(-0.0) -0.000000 trunc(-Inf) -inf4. 最接近整数中间情况下向远离零舍入 基础定义计算 arg 的最接近整数值以浮点格式中点情况舍入为远离零无关乎当前舍入模式。 计算 arg 的最接近整数值以整数格式中点情况舍入为远离零无关乎当前舍入模式。 #include iostream #include cmath #include cfenv #include climits#pragma STDC FENV_ACCESS ONint main() {// roundstd::cout round(2.3) std::round(2.3) round(2.5) std::round(2.5) round(2.7) std::round(2.7) \n round(-2.3) std::round(-2.3) round(-2.5) std::round(-2.5) round(-2.7) std::round(-2.7) \n;std::cout round(-0.0) std::round(-0.0) \n round(-Inf) std::round(-INFINITY) \n;// lroundstd::cout lround(2.3) std::lround(2.3) lround(2.5) std::lround(2.5) lround(2.7) std::lround(2.7) \n lround(-2.3) std::lround(-2.3) lround(-2.5) std::lround(-2.5) lround(-2.7) std::lround(-2.7) \n;std::cout lround(-0.0) std::lround(-0.0) \n lround(-Inf) std::lround(-INFINITY) \n;// 错误处理std::feclearexcept(FE_ALL_EXCEPT);std::cout std::lround(LONG_MAX1.5) std::lround(LONG_MAX1.5) \n;if (std::fetestexcept(FE_INVALID))std::cout FE_INVALID was raised\n; }//可能的输出 round(2.3) 2 round(2.5) 3 round(2.7) 3 round(-2.3) -2 round(-2.5) -3 round(-2.7) -3 round(-0.0) -0 round(-Inf) -inf lround(2.3) 2 lround(2.5) 3 lround(2.7) 3 lround(-2.3) -2 lround(-2.5) -3 lround(-2.7) -3 lround(-0.0) 0 lround(-Inf) -9223372036854775808 std::lround(LONG_MAX1.5) -9223372036854775808FE_INVALID was raised5. 使用当前舍入模式的最接近整数 6. 使用当前舍入模式的最接近整数 若结果有别则有异常 8. 浮点操作函数 9. 分类与比较 函数名功能fpclassify( double arg )归类给定的浮点值就是分类到 宏常量-分类里面的数据。isfinite( double arg )检查给定数是否拥有有限值isinf ( double arg )检查给定数是否为无限isnan( double arg )检查给定的数是否 NaNisnormal( double arg )检查给定数是否正规signbit ( double arg )检查给定数是否为负isgreater (double x, double y)检查第一个浮点实参是否大于第二个其实就类似 ‘’ 功能isgreaterequal(double x, double y)检查第一个浮点实参是否大于或等于第二个 其实就类似于 ‘’ 功能isless(double x, double y)检查第一个浮点实参是否小于第二个其实就类似 ‘’ 功能islessequal(double x, double y)检查第一个浮点实参是否小于或等于第二个其实就类似 ‘’ 功能islessgreater(double x, double y)检查第一个浮点实参是否小于或大于第二个类似 x y || x y 功能isunordered(double x, double y)检查两个浮点值是否无顺序若 x 或 y 为 NaN 则为 true 三、宏常量 1. 常规 2. 分类 下面的几个宏参数FP_NORMAL 、 FP_SUBNORMAL 、 FP_ZERO 、 FP_INFINITE 、 FP_NAN 宏各代表一个独自的浮点数类别。也就是说一个浮点数的值的类别应该只会在下面的表格中的一种。这些宏都是整数类型。 常量名解释说明FP_NORMAL指示值为正规即不是无穷大、非正规、非数或零FP_SUBNORMAL指示值为非正规FP_ZERO指示值为正或负零FP_INFINITE指示值无法以底层类型表示正或负无穷大FP_NAN指示值是非数 NaN 这里有一个专门的函数去分辨是那一类。1-3) 归类浮点值 arg 到下列类别中零、非正规、正规、无穷大、 NaN 或实现定义类别。 int fpclassify( float arg ); int fpclassify( double arg ); int fpclassify( long double arg ); int fpclassify( IntegralType arg );示例代码 #include iostream #include cmath #include cfloatconst char* show_classification(double x) {switch(std::fpclassify(x)) {case FP_INFINITE: return Inf;case FP_NAN: return NaN;case FP_NORMAL: return normal;case FP_SUBNORMAL: return subnormal;case FP_ZERO: return zero;default: return unknown;} } int main() {std::cout 1.0/0.0 is show_classification(1/0.0) \n 0.0/0.0 is show_classification(0.0/0.0) \n DBL_MIN/2 is show_classification(DBL_MIN/2) \n -0.0 is show_classification(-0.0) \n 1.0 is show_classification(1.0) \n; }//输出 1.0/0.0 is Inf 0.0/0.0 is NaN DBL_MIN/2 is subnormal -0.0 is zero 1.0 is normal四、错误处理
http://www.pierceye.com/news/940425/

相关文章:

  • PHP MySQL 网站开发实例单页应用网站
  • 制作网站的步骤关于企业网站建设的相关思考
  • 统计局网站建设情况ppt设计网站
  • 中石化第四建设公司 网站哪个软件可以看街道实景
  • 郑州做网站哪个平台好全国网站备案
  • 个人网站空间申请html5 网站开发 适配
  • 建站行业如何快速成第一单js制作网页游戏
  • 建立网站后怎么维护做网站自己租服务器还是网络公司
  • 建网站赚钱wordpress 公众号主题
  • 亚马逊网站建设的意义海西高端网站建设
  • 建设静态网站淘宝客怎么建设网站
  • wordpress网站外包浙江省建设厅新网站人员无法查询
  • 广州天与地网站建设石家庄快速建站公司
  • 汕头投资建设总公司网站专做PPP项目网站
  • 双语教学示范课程建设项目网站建设通网站上线
  • 电子商务网站域名注册要求南京电商设计
  • 网站左侧导航设计国内免费服务器地址
  • 怎样上网站dns解析不了图片墙网站源码
  • 东莞网站建设多少钱玩网页游戏的网站
  • 做网上竞猜网站合法吗珠海移动网站建设费用
  • 电视剧手机网站大全网页版微信二维码付款怎么弄
  • 亳州有做网站的吗一站式快速网站排名多少钱
  • 国外数码印花图案设计网站秦皇岛信息平台
  • 网站建设仿站纪念册设计制作公司
  • 西安烽盈网站建设有人上相亲网站做传销燕窝
  • 您身边的网站建设专家四川省建设注册资格中心网站
  • 东莞公司网站做优化做企业网站的合同
  • 网站域名空间怎么提交北京公司网站制作方法
  • 网站伪静态是什么意思中国知名网站排行榜
  • 国外网站注册软件用python做购物网站