我是靠谱客的博主 烂漫冬瓜,最近开发中收集的这篇文章主要介绍使用异或求两个数的较小值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(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)为0,计算机中补码表示也是全为0,所以(x^y)&-(x<y)得到的结果为0,之后y^0为y;

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

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

最后

以上就是烂漫冬瓜为你收集整理的使用异或求两个数的较小值的全部内容,希望文章能够帮你解决使用异或求两个数的较小值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部