您的位置:首页 > 编程语言 > C语言/C++

寻找两个值中更大值的方法总结c++代码

2018-01-15 14:50 176 查看
int a,b,max

方法1 if

if(a>b)
max=a;
else
max=b;
方法2 三目运算符?:
max=((a>b)?a:b)方法3
max=((a+b)+abs(a-b))/2;

方法4 位运算
int sum=a+b;
b=b-a
a-=b*(b>>(sizeof(int)*8-1))
return sum-a;

解释:1 a>b时,b=b-a<0,且sizeof(int)*8-1=31(32位的情况下),则b>>(sizeof(int)*8-1)=-1,则a+=b*(b>>(sizeof(int)*8-1))为a-=-b为a=b, return sum-a为返回较大者。

2 a<b时,b=b-a>0,且sizeof(int)*8-1=31(32位的情况下),则b>>(sizeof(int)*8-1)=0,则a-=b*(b>>(sizeof(int)*8-1))为a-=0为a=a, return sum-a为返回较大者
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: