我想知道是否有一种简单的方法可以使用二进制操作来执行以下操作:
第一个字节: 1001 1110
第二个字节: 0001 0011
预期结果: 1000 1100
我只想将第一个字节的所有位设置为0,其中在第二个字节中,位为1
答案 0 :(得分:0)
你可以使用XOR和AND运算符这样做:
(A ^ B)&甲
编辑: 正如其他提到的那样你可以使用这样的AND和NOT运算符:
A& (〜B)
答案 1 :(得分:0)
所以如果你有:
var a = 0x9E;
var b = 0x13;
要获得预期结果,请尝试:
var c = a&(~b);
解释:在B上使用NOT(〜)运算符会给我们你的面具:NOT 0001 0011
=> 1110 1100
。使用AND运算符将此掩码应用于变量a
将为变量b
设置为0所需的位。