介绍一下Objective-c常用的函数,常数变量

1、 三角函数

  double sin (double);正弦   sinA=∠A的对边/斜边。是股与弦的比例。
  double cos (double);余弦 
  double tan (double);正切 
  2 、反三角函数 
  double asin (double); 结果介于[-PI/2, PI/2] 
  double acos (double); 结果介于[0, PI] 
  double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2] 
  double atan2 (double, double); 反正切(整圆值), 结果介于[-PI, PI] 
  3 、双曲三角函数 
  double sinh (double); 
  double cosh (double); 
  double tanh (double); 
  4 、指数与对数 
  double exp (double);求取自然数e的幂 
  double sqrt (double);开平方 
  double log (double); 以e为底的对数 
  double log10 (double);以10为底的对数 
  double pow(double x, double y);计算以x为底数的y次幂 
  float powf(float x, float y); 功能与pow一致,只是输入与输出皆为浮点数 
  5 、取整 
  double ceil (double); 取上整 
  double floor (double); 取下整 
  6 、绝对值 
  double fabs (double);求绝对值 
  double cabs(struct complex znum) ;求复数的绝对值 
  7 、标准化浮点数 
  double frexp (double f, int *p); 标准化浮点数, f = x * 2^p, 已知f求x, p ( x介于[0.5, 1] ) 
  double ldexp (double x, int p); 与frexp相反, 已知x, p求f 
  8 、取整与取余 
  double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分 
  double fmod (double, double); 返回两参数相除的余数 
  9 、其他 
  double hypot(double x, double y);已知直角三角形两个直角边长度,求斜边长度 
  double ldexp(double x, int exponent);计算x*(2的exponent次幂) 
  double poly(double x, int degree, double coeffs [] );计算多项式 
  nt matherr(struct exception *e);数学错误计算处理程序

iOS_数学函数Math Functions

floor/ceil/round  向下取整/向上取整/四舍五入

取整实例1:

double d1 =10.12, d2 =10.88;

float f1 =10.19893, f2 =10.77;

DLog(@"floor_d = %f, floor_f = %f, ceil_d = %f, ceil_f = %f, round_d = %f, round_f = %f", floor(d1), floorf(f1), ceil(d1), ceilf(f1), round(d1), roundf(f1));

//输出  floor_d = 10.000000, floor_f = 10.000000, ceil_d = 11.000000, ceil_f = 11.000000, round_d = 10.000000, round_f = 10.000000

DLog(@"floor_d2 = %f, floor_f2 = %f, ceil_d2 = %f, ceil_f2 = %f, round_d2 = %f, round_f2 = %f", floor(d2), floorf(f2), ceil(d2), ceilf(f2), round(d2), roundf(f2));

//输出  floor_d2 = 10.000000, floor_f2 = 10.000000, ceil_d2 = 11.000000, ceil_f2 = 11.000000, round_d2 = 11.000000, round_f2 = 11.000000

//取整与取余

float f1 =0.0;

DLog(@"8.99的小数部分:modff(2.0, &f1) = %.2f, 整数部分:f1 = %.2f",modff(8.99, &f1), f1);

//输出  8.99的小数部分:modff(2.0, &f1) = 0.99,  整数部分:f1 = 8.00

DLog(@"fmodf(9.0, 2.0) = %f,  fmodf(10.0, 2.0) = %f", fmodf(9.0,2.0), fmodf(10.0,2.0)); 取余

//输出  fmodf(9.0, 2.0) = 1.000000,  fmodf(10.0, 2.0) = 0.000000

三角函数:

float f1 =10.19893;

DLog(@"acosf = %f, asinf = %f, atanf = %f", acosf(f1), asinf(f1), atanf(f1));

//输出  acosf = nan, asinf = nan, atanf = 1.473059

DLog(@"cosf = %f, sinf = %f, tanf = %f", cosf(f1), sinf(f1), tanf(f1));

//输出  cosf = -0.715014, sinf = -0.699110, tanf = 0.977757

DLog(@"acoshf = %f, asinhf = %f, atanhf = %f", acoshf(f1), asinhf(f1), atanhf(f1));

//输出  acoshf = 3.013018, asinhf = 3.017825, atanhf = nan

对数与指数

float f1 =100.0, f2 =4.0;

DLog(@"对数: logf(100) = %f, log10f(100) = %f, log2f(4) = %f", logf(f1), log10f(f1), log2f(f2));

//输出 对数: logf(100) = 4.605170, log10f(100) = 2.000000, log2f(4) = 2.000000

DLog(@"指数: pow(2, 3) = %f", pow(2, 3));

//输出 指数: pow(2, 3) = 8.000000

DLog(@"开平方:sqrt(100) = %f", sqrt(f1));

//输出 开平方:sqrt(100) = 10.000000

float x =16.4, y;

int n;

y = frexpf(x, &n);

DLog(@"y = frexpf(%f, &n) = %f,    n = %d", x, y, n);

//输出  y = frexpf(16.400000, &n) = 0.512500,    n = 5

//即 16.4 = 0.5125 * 2^5

DLog(@"5 * 2^3 = ldexpf(5, 3) = %f",ldexpf(5,3));

// 5 * 2^3 = ldexpf(5, 3) = 40.000000

/******************************************************************************

*                                                                            *

*                              Math Functions                                *

*                                                                            *

******************************************************************************/

————————————————————————————————

反三角函数

extern float acosf(float);

extern double acos(double);

extern longdouble acosl(longdouble);   结果介于[0,PI]

extern float asinf(float);  结果介于[-PI/2, PI/2]

extern float atanf(float);     反正切(主值),结果介于[-PI/2, PI/2]

extern float atan2f(float,float);   反正切(整圆值),结果介于[-PI, PI]

三角函数

extern float cosf(float);余弦

extern float sinf(float);正弦

extern float tanf(float);正切

双曲三角函数

extern float acoshf(float);双曲反余弦(Hyperbolic arc cosine)函数

extern float asinhf(float);双曲反正弦(Hyperbolic arc sine)函数

extern float atanhf(float);双曲反正切(Hyperbolic arc tangent)函数

extern float coshf(float); 双曲余弦(Hyperbolic cosine)函数

extern float sinhf(float); 双曲正弦(Hyperbolic sine)函数

extern float tanhf(float); 双曲正切(Hyperbolic tangent)函数

————————————————————————————————

指数与对数

extern float expf(float); 求取自然数e的幂

extern float exp2f(float); 计算以2为底的指数

extern float expm1f(float);以2为底的指数结果再减1

extern float logf(float);以e为底的对数

extern float log10f(float);以10为底的对数

extern float log2f(float);以2为底的对数

extern float log1pf(float);  计算1与给定值x 的和(1+x)的自然对数(ln(1+x)

extern float logbf(float);返回以FLT_RADIX 为底,|x| 的对数值,返回值为浮点数

extern float modff(float,float *); 取整与取余 ,  例,float f1 =0.0; float f2 = modff(8.99, &f1); 结果:f1 = 8   f2 = 0.99

extern float ldexpf(float,int); 计算 参数1乘以2的 参数2次幂    // 5 * 2^3 = ldexpf(5, 3) = 40.000000

externfloat frexpf(float,int *);把一个浮点数分解为尾数和2为底的指数,   例 16.4 = 0.5125*2^5

extern int ilogbf(float);返回以 FLT_RADIX为底,|x|的对数值,返回值为整数

extern float scalbnf(float,int);x * FLT_RADIXy

extern float scalblnf(float,longint); 参数1乘以FLT_RADIX的整数幂 x * FLT_RADIXy    

extern float fabsf(float); 绝对值

extern float cbrtf(float);计算参数的立方根 3√x

extern float hypotf(float,float); 计算两个数平方的和的平方根(√x2+y2)(求直角三角形的斜边长度)

extern float powf(float,float);计算以m为底数的n次幂,  powf(m, n)

extern float sqrtf(float); 开平方

extern float erff(float);返回x的高斯误差函数

extern float erfcf(float); 返回x的补余高斯误差函数

/* lgammaf, lgamma, and lgammal are not thread-safe. The thread-safe

variants lgammaf_r, lgamma_r, and lgammal_r are made available if

you define the _REENTRANT symbol before including <math.h>                */

extern float lgammaf(float);γ 函数的自然对数

extern float tgammaf(float);γ 函数(伽玛函数)

————————————————————————————————

浮点数的最近整数操作

extern float ceilf(float); 向上取整

extern float floorf(float); 向下取整

externfloat nearbyintf(float);通过使用当前舍入方向,舍入参数为浮点格式的一个整数值,整数。返回舍入的整数值。

extern float rintf(float);四舍五入

extern longint lrintf(float);四舍五入

extern float roundf(float);四舍五入

extern longint lroundf(float);四舍五入

/*  long long is not part of C90. Make sure you are passing -std=c99 or

-std=gnu99 or higher if you need these functions returning long longs     */

#if !(__DARWIN_NO_LONG_LONG)

extern longlongint llrintf(float);

extern longlongint llroundf(float);

#endif /* !(__DARWIN_NO_LONG_LONG) */

extern float truncf(float);幅度(到0的距离,即绝对值)不大于给定值的最近整数

extern float fmodf(float,float); 获得浮点数除法操作的余数

extern float remainderf(float,float);获得浮点数除法操作的带符号余数

extern float remquof(float,float,int *); 获得浮点数除法操作的带符号余数,且返回符号及操作结果的最后三位组成的整数

externfloat copysignf(float,float);用参数1的大小和参数2的符号来返回值 //输出   copysignf(2.5, -1.0) = -2.500000,  copysignf(4.0, 3) = 4.000000

extern float nanf(constchar *); 将执行时定义的字符串作为静态化非数型(Quiet NaN)操作所需的值

extern float nextafterf(float,float);返回x之后y方向上的下一个可描述(Representable)值

extern double nexttoward(double,longdouble);返回x 之后y 方向上的下一个可描述值

externfloat fdimf(float,float);计算两参数之间正整数差异//输出   fdimf(2.5, 3.7) = 0.000000,  fdimf(5.4, 2.2) = 3.200000

extern float fmaxf(float,float); 求最大值

extern float fminf(float,float); 求最小值

extern float fmaf(float,float,float);乘累加(Multiply-add)

#define isgreater(x, y) __builtin_isgreater((x),(y))

#define isgreaterequal(x, y) __builtin_isgreaterequal((x),(y))

#define isless(x, y) __builtin_isless((x),(y))

#define islessequal(x, y) __builtin_islessequal((x),(y))

#define islessgreater(x, y) __builtin_islessgreater((x),(y))

#define isunordered(x, y) __builtin_isunordered((x),(y))

/* Legacy BSD API: please use C99 INFINITY macro instead.                     */

extern float __inff(void)__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA);

extern double __inf(void)__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA);

extern longdouble __infl(void)__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA);

/* Implementation detail; please use the standard C NAN macro instead.        */

extern float __nan(void)__OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA);

算术函数

【算术函数】
函数名 说明
int rand() 随机数生成。
(例)
srand(time(nil)); //随机数初期化
int val = rand()P; //0~49之间的随机数
int abs(int a) 整数的绝对值
(例)int val = abs(-8);
 →8
※浮点数的时候用fabs。
double fabs(double a) 浮点数的绝对值
(例)double val = fabs(-12.345);
 →12.345
※整数的时候用abs。
double floor(double a) 返回浮点数整数部分(舍弃小数点)
(例)double val = floor(12.345);
 →12.000
double ceil(double a); 返回浮点数整数部分(舍弃小数点部分,往个位数进1)
(例)double val = ceil(12.345);
 →13.000
double pow(double a, double b) a的b次方
(例)double val = pow(2, 3);
 →8
double sqrt(double a) a的平方根
(例)double val = sqrt(2);
 →1.41421356

三角函数

【三角函数】
函数名 说明
double cos(double a) 余弦函数 (a:弧度)
double sin(double a) 正弦函数 (a:弧度)
double tan(double a) 正切函数 (a:弧度)
double asin(double a) 反正弦值 (a:弧度)
double acos(double a) 反余弦函数(a:弧度)
double atan(double a) 反正切函数
double atan2(double a, double b) 返回给定的 a 及 b 坐标值的反正切值

指数函数

【指数函数】
函数名 说明
double log(double a) 以e 为底的对数值
double log10(double a) 对数函数log

常数

常数
常数名 说明
M_PI 圆周率(=π)
M_PI_2 圆周率的1/2(=π/2)
M_PI_4 圆周率的1/4(=π/4)
M_1_PI =1/π
M_2_PI =2/π
M_E =e
M_LOG2E log_2(e)
M_LOG10E

log_10(e)

ios 中的基本算数函数相关推荐

  1. iOS中使用c函数快速获取一个目录所占的空间大小

    在编写iOS应用时,我们都会大量把服务器的接口调用数据或者图片数据进行缓存,为了更好的使用体验,有时候我们也会把各种缓存的数据所占的空间大小告诉用户,提供给用户参考,并让用户可以手动清除缓存数据,就像 ...

  2. iOS中 openGL常用函数记录(部分)

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 注:这行代码是用于清楚屏幕.GL_DEPTH_BUFFER_BIT 清除深度缓冲 glVerte ...

  3. iOS中几种数据持久化方案总结

    概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) ...

  4. iOS中关于NSTimer使用知多少

    看到这个标题,你可能会想NSTimer不就是计时器吗,谁不会用,不就是一个能够定时的完成任务的东西吗? 我想说你知道NSTimer会retain你添加调用方法的对象吗?你知道NSTimer是要加到ru ...

  5. iOS中JS 与OC的交互(JavaScriptCore.framework)

    iOS中实现js与oc的交互,目前网上也有不少流行的开源解决方案: 如:react native 当然一些轻量级的任务使用系统提供的UIWebView 以及JavaScriptCore.framewo ...

  6. python 安卓模拟点击_python模拟点击在ios中实现的实例讲解

    我们都知道因为操作系统的不同,很多游戏区分为安卓和苹果两个版本.那么之前学会python模拟点击的小伙伴开始担心,如果手机是ios版本那还能使用吗?这个问题小编进行了测试,小伙伴们完全不用忧虑ios版 ...

  7. iOS 中KVC、KVO、NSNotification、delegate 总结及区别

    iOS 中KVC.KVO.NSNotification.delegate 总结及区别 1.KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属 ...

  8. ios开发 ajax hook,IOS中的网络拦截总结

    因为业务场景需要,要求对App中网络请求进行拦截.这里包括原生网络请求和WebView里的网络请求.之前我们了解过原生网络请求的拦截是可以实现的,但是WebView中网络请求似乎还不太可能,所以抱着尝 ...

  9. iOS中的CADisplayLink定时器

    2019独角兽企业重金招聘Python工程师标准>>> iOS中的CADisplayLink定时器 说到定时器,在iOS中最常用的为NSTimer类,其实CADisplayLink类 ...

最新文章

  1. C#中虚函数,抽象,接口的简单说明
  2. MySQL高级 - SQL技巧 - 数字函数与字符串函数
  3. 形容等待时间长的句子_雅思听力该如何准确辨别句子结构?学会结构精听,雅思8分轻松get!...
  4. 看反病毒专家对EICAR检测代码的专业解读
  5. 【渝粤教育】国家开放大学2018年春季 0175-21T社会调查研究与方法 参考试题
  6. mysql 学习笔记07日期相关函数01
  7. 必须知道的app测试与web测试的区别
  8. Android 自定义ViewGroup
  9. [POJ1664] 放苹果 (动态规划,组合数学)
  10. windows.location属性(常用知识点)
  11. 使用Advanced Installer打包安装程序
  12. 如何将图片的尺寸设为A4的尺寸?
  13. 电商商品3d展示---插件spritespin
  14. BufferedInputStream。。。。。。。BufferedReader和BufferedWriter
  15. 淘宝HTML5版私钥泄漏
  16. 红米手机H5布局压扁
  17. Win系统 - 解决 Win10 笔记本 WiFi 的标志变成小地球
  18. python双层for循环控制图像逐行扫描和逐列扫描
  19. 【牛客网华为机试】HJ46 截取字符串
  20. php ligerui 导出excel,asp.net+Ligerui实现grid导出Excel和Word的方法

热门文章

  1. 线性稀疏自编码机_特征工程之特征缩放amp;特征编码
  2. 提取文件出错_提取中文、英文和数字,其实很简单
  3. python的迭代器指向第一个字符_python(七)字符串格式化、生成器与迭代器
  4. 我想看基金27005_宅家变富,你知道如何挑选股票基金吗?
  5. 文件映射操作类的实现
  6. python中可变参数和关键字参数_python的可变参数和关键字参数(*args **kw)
  7. 玄惭 mysql_阿里云数据库专家玄惭的“武功”全记录之最佳实践、双十一特别篇...
  8. 指针数组概念 和 函数指针数组实战 和指针函数的概念和实战
  9. 开机显示输入最佳预设值_开机密码忘了怎么解决
  10. linux 移动目录树到子目录中,Linux系统管理员工具包: 移动Linux/UNIX目录