przykład:jak zerować każdy bit, gdy w drugim operandzie jest 1?
1010111110110001
0101011100010010
================
1010100010100001
|0 1
-|----
0|0 1
1|0 0
jak zrobić tę operację w C++/C++ 11?
przykład:jak zerować każdy bit, gdy w drugim operandzie jest 1?
1010111110110001
0101011100010010
================
1010100010100001
|0 1
-|----
0|0 1
1|0 0
jak zrobić tę operację w C++/C++ 11?
Można zrobić bitowe NOT a następnie I im: a & ~b
Dane:
a = 1010111110110001
b = 0101011100010010
Następnie negując b
daje:
~b = 1010100011101101
i robi a & ~b
:
a = 1010111110110001
~b = 1010100011101101
-------------------------
a & ~b = 1010100010100001
prosta
result = op1 & ~op2;
Wplynie drugiego operandu (1 bitowego się 0, i vice versa). Następnie użyjesz bitowego i. Jest to często nazywane za pomocą maski bitowej.
Powinieneś być w stanie zrobić bitowego iz negacji bitowej:
result = val1 & ~val2;
Chcesz bitowego AND komplement drugiego argumentu.
int fun(int x, int y)
{
return x & ~y;
}