概述
0 | 0 = 0 1 | 1 = 1 0 | 1 = 1 1 | 0 = 1
0 ^ 0 = 0 1 ^ 1 = 0 0 ^ 1 = 1 1 ^ 0 = 1
0 & 0 = 0 1 & 1 = 1 0 & 1 = 0 1 & 0 = 0
0 + 0 =00 1 + 1 =10 0 + 1 =01 1 + 0 =01
结论:
1位二进制运算的低位就是异或运算的结果,进位就是与运算的结果。
而如果加法过程中不会出现进位的话,就只有两种情况:
1 + 0 = 1 0 + 1 = 1
可以看到,异或肯定没问题。
0 ^ 1 = 1 1 ^ 0 = 1
在这种特殊的情况下,或运算的规律也恰好满足。
0 | 1 = 1 1 | 0 = 1
拿PHP语言为例:
1|2=3 1+2=3 1^2=3
2|4=6 2+4=6 2^4=6
4|8=12 4+8=12 4^8=12
如果仔细看下这三个例子,就会发现它们的共同点,那就是每一位的加法都不会产生进位:
如果都是2的N次方的话,可以理解为 按位或与加法一样 也就是“+”与“|”通用。
比如 这种情况(2 ^ x+2 ^ y 且 x,y不相等)恰好不出现进位,所以才可以通过或运算得到加法运算的结果。
最后
以上就是开放机器猫为你收集整理的按位或与加法的区别的全部内容,希望文章能够帮你解决按位或与加法的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复