rsk*_*k82 5 c++ bit-manipulation
例:
1010111110110001
0101011100010010
================
1010100010100001
|0 1
-|----
0|0 1
1|0 0
Run Code Online (Sandbox Code Playgroud)
如何在c ++/c ++ 11中执行此操作?
你可以做一个按位NOT然后AND它们: a & ~b
鉴于:
a = 1010111110110001
b = 0101011100010010
Run Code Online (Sandbox Code Playgroud)
然后否定b给出:
~b = 1010100011101101
Run Code Online (Sandbox Code Playgroud)
并做a & ~b:
a = 1010111110110001
~b = 1010100011101101
-------------------------
a & ~b = 1010100010100001
Run Code Online (Sandbox Code Playgroud)
简单:
result = op1 & ~op2;
Run Code Online (Sandbox Code Playgroud)
这会按位反转第二个操作数(1变为0,反之亦然).在此之后你使用按位和.这通常使用位掩码调用.