异或操作求取最小值

来源:互联网 发布:2017中小学生网络竞赛 编辑:程序博客网 时间:2024/05/06 14:20


y^(x^y)&-(x<y))求取二者的最小值


        如果x<y;则根据运算规则有,-(x<y)为-1,计算机中都是用补码表示数字的,所以计算机中-1表示为全1;所以在下一步的运算中(x^y)&-(x<y)得到的结果为(x^y);之后y^(x^y),根据异或运算的交换略,y^y^x结果为x;

        如果x>y;则根据运算规则有,-(x<y)为-1,计算机中补码表示也是全为0,所以(x^y)&-(x<y)得到的结果为0,之后y^0为y;

综上所述,所以这个式子返回的是x和y的最小值。

经过以上的分析,我们可以很快推导出使用这些位运算计算二者最大值的方法,即(y^(x^y)&(x<y-1))或者(x^(x^y)&-(x<y));具体的推导过程和上面的一样。

0 0
原创粉丝点击