c - 术语和代码行的平等

标签 c bit-manipulation bitwise-operators logical-operators

任何人都可以逐步向我解释,这种平等如何成立?

((a^b)&~b)|(~(a^b)&b)  == a

最好的方法是什么?

最佳答案

(X&~Y)|(~X&Y) == X^Y//根据 XOR 的定义

代入 X=a^b 和 Y=b:

((a^b)&~b)|(~(a^b)&b) == (a^b)^b

那么,剩下的就简单了:

(a^b)^b == a^(b^b) == a^0 == a

关于c - 术语和代码行的平等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54129315/

相关文章:

c - “变量”可能在此函数中未初始化使用,有一个可行的解决方法但不明白为什么

c - sigwait 在 MacOS 上复制和转换信号

将一个值与单个表达式中的其他两个值进行比较,同时只引用第一个值一次

c - 我需要对这个按位拼图做一点解释

c - C 程序中的内存泄漏

c - 使用系统命令时如何将整数参数传递给脚本文件

c++ - 立即获取整数中最左边事件位的索引

java - 当java中有位运算符时,为什么要使用逻辑运算符

c++ - "x += x & (-x)"是什么意思?

c# - 两个左尖括号 "<<"在 C# 中是什么意思?