Побитовые операции
Таблица 1.3. Побитовые операции
nl |
n2 |
~nl |
nl & n2 |
nl | n2 |
nl ^ n2 |
1 1 0 0 |
1 0 1 0 |
0 0 1 1 |
1 0 0 0 |
1 1 1 0 |
0 1 1 0 |
В нашем примере b1 == 50 , двоичное представление 00110010, b2 == -99 , двоичное представление 10011101 . Перед операцией происходит повышение до типа int . Получаем представления из 32-х разрядов для b1 — 0...00110010 , для b2 — 1...l0011101 . В результате побитовых операций получаем:
- ~b2 == 98 , двоичное представление 0...01100010 ;
- b1 & b2 == 16 , двоичное представление 0...00010000 ;
- b1 | b2 == -65 , двоичное представление 1...10111111 ;
- b1 ^ b2 == -81 , двоичное представление 1...10101111 .
Двоичное представление каждого результата занимает 32 бита.
Заметьте, что дополнение ~х всегда эквивалентно (-x)-1 .