寻找两个值中更大值的方法总结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为返回较大者
相关文章推荐
- 寻找两个值中更大值的方法总结c++代码
- 寻找两个值中更大值的方法总结c++代码
- 寻找两个值中更大值的方法总结c++代码
- 寻找两个值中更大值的方法总结c++代码
- 寻找两个值中更大值的方法总结c++代码
- 寻找两个值中更大值的方法总结c++代码
- 寻找两个值中更大值的方法总结c++代码
- 寻找两个值中更大值的方法总结c++代码
- 寻找两个值中更大值的方法总结c++代码
- 寻找两个值中更大值的方法总结c++代码
- C++代码优化方法总结
- C++代码优化方法总结
- 确切定位c++代码中异常抛出位置的两个方法 (以VS2010调试为例)
- C++代码优化方法总结
- C++代码优化方法总结
- C++代码优化方法总结
- C++代码优化方法总结
- C++代码优化方法总结
- C++代码优化方法总结
- C++代码优化方法总结