Na unsigned int
proměnné a
a b
držet některé trochu-vzor, které představují 1 a 2. To nebude, ale kvůli popis, řekněme, že
a = 0b0001
b = 0b0010
To by byla čísla 1 a 2 ve 4-bitové celé číslo.
Na &
provozovatel má bit-moudrý, a tak kousek po kousku budete hodnotit (0,0)->0
, (0,1)->0
, (1,0)->0
a (1,1)
. Takže, pro dvě celá čísla výše
a = 0b0001
b = 0b0010
a&b = 0b0000
Vidíme, že a&b
je nulový, protože nemají žádné překrývající 1-bitů.
Provozovatel &&
má logické a, což znamená, že výsledek je 1, pokud jsou oba argumenty jsou non-nula a nula jinak. Tak a && b = 1
protože ani a
a b
jsou nulové.
a = 0b0001
b = 0b0010
a&&b = 0b0001
Na ||
provozovatel je logické, nebo; to vám dává 1, pokud některý z argumentů jsou nenulové a pouze nulový, pokud se oba argumenty jsou nulové. Tak, od
a&b = 0b0000
a&&b = 0b0001
kde a&&b
je non-nula, dostanete c = (a&b) || (a&&b) = 1
.