我需要执行按位操作(或系列),以便:
0 1 = 0
1 1 = 1
1 0 = 0
Run Code Online (Sandbox Code Playgroud)
到目前为止AND(&)工作正常但我也需要它
0 0 = 1
Run Code Online (Sandbox Code Playgroud)
这里AND(&)不正确.
我在jquery grep函数中使用它,该函数读取:
jQuery.grep(json, function (e, index) {
return (e.value & (onoff << 3)) != 0;
});
Run Code Online (Sandbox Code Playgroud)
其中onoff可以是1或0,而e.value是4位字符串的表示(即可以是"1001").在上面的例子中,我正在测试左边的第一位(<< 3).
这可以通过AND,OR,XOR系列完成吗?
这只是XNOR(a, b),等于NOT(XOR(a, b)),即反转输出的异或.在C和C类语言中,这将是:
!(a ^ b)
Run Code Online (Sandbox Code Playgroud)
或在您的具体情况下:
return !((e.value >> 3) ^ onoff);
Run Code Online (Sandbox Code Playgroud)
话虽如此,你可以测试平等:
return (e.value >> 3) == onoff;
Run Code Online (Sandbox Code Playgroud)