Используйте побитовое И для int в переполнении стека

Мой вопрос прост: как мне выполнить побитовое И на int в С ++?

#include <iostream>

int main() {
unsigned int foo = 3;
unsigned int bar = 6;
std::cout << foo & bar;
return 0;
}

Вместо вывода 2 он печатает 3.

Когда я делаю любую другую побитовую операцию, она также просто печатает первую переменную.

Как мне заставить его сделать операцию?

1

Решение

Вы должны добавить круглые скобки вокруг вашего foo & bar поскольку & оператор имеет более низкий приоритет, чем смещение << оператор.

std::cout << (foo & bar);

В качестве примечания, я удивлен, что код компилируется без скобок. Бонус: документ для правил приоритета оператора на cppreference

7

Другие решения

Других решений пока нет …