给定两个int a和b,不使用if-else等比较和判断运算符,请返回较大的一个数。若两数相同则返回任意一个
程序员文章站
2024-02-02 18:34:58
...
a>>31,对于有符号位的数,向右移动时,符号位也会向右移动,当为正数时,最高位补0,为负数时,最高位补1
int getMax(int a,int b){
a = a-b;
b -= a&(a>>31);
return b;//返回值是b,说明了b大,返回值是a,说明了a大
}
上一篇: 输入rapidjson错误信息
下一篇: 分解质因数(C语言实现)