欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

给定两个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大
}