Jon*_*han 30 c# operators bitwise-operators
我知道单个&符号运算符通常用于"按位AND"运算.但是,任何人都可以帮助解释当您使用它来比较两个数字时得到的有趣结果吗?
例如;
(6 & 2) = 2
(10 & 5) = 0
(20 & 25) = 16
(123 & 20) = 16
Run Code Online (Sandbox Code Playgroud)
这些结果之间似乎没有逻辑联系 - 我错过了什么吗?在线文档似乎只是指布尔值或单个位的比较.
Jef*_*tin 52
比较每个的二进制表示.
110 & 010 = 010
1010 & 0101 = 0000
10100 & 11001 = 10000
1111011 & 0010100 = 0010000
Run Code Online (Sandbox Code Playgroud)
在每种情况下,只有在输入的左侧和右侧都为1时,结果中的数字才为1.