Побитовый и я - PullRequest
       9

Побитовый и я

Ответы [ 4 ]

10 голосов
/ 26 февраля 2012

Ну .. потому что.

Для &, оператор AND:

0001       = 1
0100       = 4
---- (AND)
0000       = 0

для |, оператор OR:

0001       = 1
0100       = 4
---- (OR)
0101       = 5
3 голосов
/ 26 февраля 2012

Побит & &> Если оба бита выше, то выход выше, иначе вывод равен нулю.

0 0 1
1 0 0
-----
0 0 0  => 0   // 1 & 1 = 1 , 1 & 0 = 0

Теперь попробуй себя побитовым |. Чем больше бит, тем выше выход.

2 голосов
/ 26 февраля 2012

Посмотрите на это в двоичном виде.

1d (ecimal) = 001b (inary)

4d (ecimal) = 100b (inary)

* Таким образом, 1007 *

001b
100b & (both bits have to be 1 to yield 1)
--
000b = 0d

и

001b
100b | (only one on either side (or both) has to be 1 to yield 1)
--
101b = 5d
2 голосов
/ 26 февраля 2012

1 равно 0b001, а 4 равно 0b100, поэтому, естественно, 1&4 равно 0b000, а 1|4 равно 0b101, что составляет 5.

...