Мой вопрос прост: как мне выполнить побитовое И на int
в С ++?
#include <iostream>
int main() {
unsigned int foo = 3;
unsigned int bar = 6;
std::cout << foo & bar;
return 0;
}
Вместо вывода 2 он печатает 3.
Когда я делаю любую другую побитовую операцию, она также просто печатает первую переменную.
Как мне заставить его сделать операцию?
Вы должны добавить круглые скобки вокруг вашего foo & bar
поскольку &
оператор имеет более низкий приоритет, чем смещение <<
оператор.
std::cout << (foo & bar);
В качестве примечания, я удивлен, что код компилируется без скобок. Бонус: документ для правил приоритета оператора на cppreference
Других решений пока нет …