Любопытное поведение побитового И

Я кодировал, и следующий код не дает желаемого результата. позиция&1 должен возвращать остаток, когда pos делится на 2. Когда я заменяю pos&1 от pos% 2 все работает просто отлично. В чем может быть проблема?

#include <iostream>
using namespace std;
int main(){
int y;
unsigned long long int pos;
cin>>y;
cin>>pos;
int f=0;
while(y>0){
y--;
if(pos&1==0){
f=1-f;
}
pos=pos/2;
}
if(f==1){
cout<<"blue\n";
}
else
cout<<"red\n";
return 0;
}

0

Решение

1==0 имеет больший приоритет, чем pos&1, Пытаться if((pos&1)==0){

11

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

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