开心一刻
两头奶牛在一起吃草,其中一头(奶牛甲)越吃越慢,一副若有所思的模样,另一头奶牛(奶牛乙)发觉了,开始了对话
奶牛乙:搁那合计啥呢?
奶牛甲:你帮我合计合计
奶牛乙:咋地了
奶牛甲:我吃的是草,挤出来的是奶,也就是说我把没用的变成有用的了
奶牛乙:是这个事
奶牛甲:人呢,喝的是奶,拉出来的是粑粑
奶牛乙:咋地了
奶牛甲:他又把有用的变成没用的了,我这不白干了吗
奶牛乙:你说的不对
奶牛甲:不对吗?
奶牛乙:那粑粑做成化肥,有化肥才能长草,所以说你吃的不是草,是粑粑
奶牛乙:啊 ???

概念
关于“位”运算,大家或多或少都知道点,比如与运算(&)、或运算(|)、异或运算(^)、取反运算(~)、左移(<<)、右移(>>)
因为今天的主角是:异或运算,其他的位运算就不在本文展开了,大家自行去查阅
异或运算的英文名: exclusive OR ,简称 XOR ,那它是不是和或运算有什么关系?
关于或运算,我们都比较清楚,只有当两个位都是0时,结果才为0,其他情况结果都是1,也就是说或运算结果为 1 的情况两种
(1)一个位是 1,另一个位是 0
(2)两个位都是 1
有时候我们需要明确区分这两种情况,怎么办?
所以引入了 XOR ,它排除了情况(2),只有情况(1),也就说:一个位是 1,另一个位是 0 时, XOR 的结果才是 1,因此也可称做无进位相加
所以 XOR 可以看成是更单纯的 OR 运算,正好对应了它的英文名: exclusive OR ,用来判断两个值是否不同(不同、不同、不同!!!)
XOR 的运算真值表

本文介绍了异或运算的概念和运算定律,通过具体的案例展示了如何利用异或运算在不需要额外变量的情况下交换两个变量的值,以及在解决寻找一串数字中唯一奇数次出现的数字、缺失数字和重复数字等问题中的应用。强调了异或运算是判断同位上值不同的依据,并指出其在某些场景下优于传统方法的优势。
最低0.47元/天 解锁文章
598

被折叠的 条评论
为什么被折叠?



