请问:谁知道C语言中abs函数是怎么实现的

请问:谁知道C语言中abs函数是怎么实现的,第1张

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)

}

VB编程中的闭裤“Abs”是一个取绝对值轿帆简轿世的函数。

ABS(34)=34

ABS(-34)=34

ABS(-234.678)=234.678

ABS(0)=0


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

原文地址:https://54852.com/tougao/12229550.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存