C语言中abs和fbs的区别

C语言中abs和fbs的区别,第1张

1、输入参数类型不同:

ABS是绝对值函数的输入参数类型为整型,fabs函数的输入参数类型为浮点型。

2、输出参数类型不同:

ABS函数的输出参数类型为整型,fabs函数的输出参数类型为浮点型。

3、功能不同:

fabs函数功能为:求浮点数x的绝对值。ABS函数的功能为求整数的绝对值。

4、引用的头文件不同:

abs函数引用的头文件:stdlib.h,fabs函数引用的头文件为math.h。

扩展资料:

fbs函数的应用:

程序判数滤波采样的信号,如因常受到随机干扰传感器不稳定而引起严重失真时,可以采用此方法。

方法是:根据生产经验确定两交采样允许的最大偏差△×,若先后两次采样的信号相减数值大于△×,表明输入的是干扰信号,应该去掉;用上次采样值作为本次采样值,若小于、等于△×表明没有受到干,本次采样值效。该方法适用于慢变化的物理参数的采样,如温度、物理位置等测量系统。

程序判断滤波的C程序函数如下:

float program_detect_filter(float old_new_value[], float X){

float sample_value

if (fabs(old_new_value[1]_old_new_value[0])>X) sample_value=old_new_value[0]

else sample_value=old_new_value[1]

retrun(sample_value)

}

函数调用需一个一维的两个元素的数组(old_new_value[2],用于存放上次采样值(old_new_value[0],)和本次采样值(old_new_value[1]),函数中sample_value表示有效采样值,X表示根据根据经验确定的两次采样允许的最大偏差△×。

参考资料来源:百度百科-ABS

参考资料来源:百度百科-fabs函数

给两个整数,求两数之差的绝对值可以用C语言的绝对值ABS函数,头文件是stdlib.h。ABS函数的格式是Abs(<number>)。功能为求表达式绝对值。函数返回值类型与数值表达式的数据类型相同。数字的绝对值是其无符号的数值大小。例如,Abs(-1) 和 Abs⑴ 都返回 1。

如:

#include <stdlib.h>

#include <stdio.h>

int main(void)

{

int a= -100;

int b = 200;

printf("绝对值: %d\n",  abs(a-b))

return 0;

}

结果为“绝对值: 300”。

扩展资料:

ABS函数的number 参数不能是任意的,不能是浮点数或者双精度运算数值表达式,如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。如果number参数不是数值,而是一些字符,则返回 Null。

在C语言中还有fabs函数,也是求绝对值的,不同的是,fabs函数参数与返回值为实型。在32位机上若不用系统的函数及条件语句可以使用fabs函数实现取绝对值。

1.函数的头文件:#include <stdlib.h>

2.函数的原型:int abs (int j)

3.函数说明:abs()用来计算参数j 的绝对值,然后将结果返回。

4.返回值:返回参数j 的绝对值结果。

5.关于abs函数的实现:

(1)带if分支的利用补码特性:

正数的补码和原码相同;负数的补码是:补码=~(其正数的)原码+1。因此如果是负数求绝对值可以:(绝对值)原码=~(补码-1)

int _abs(signed int i)

{

if (i<0)

return ~(--i)

return i

}

(2)带if分支(判断分支)的传统想法:

正数保持原样,负数取反

int _abs(singed int p)

{

return p>0?p:-p

}

(3)不带if分支(判断分支)的位运算:

int __cdecl _abs(signed int i)

{

return ((i >>31) ^ i) - (i >>31)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8006712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存