부호없는 int에 대해 비트 연산을 사용하지 않을 것으로 예상되는 동작이 발생했습니다. 나는 나의 모범을 바로 잡을 것이다.부호없는 int 0 비트 표현
unsigned int a = 0;
unsigned int b = 0;
std::printf("a & b: %u\n", a & b);
std::printf("a == b: %i\n", a == b);
std::printf("a & b == a: %i\n", a & b == a);
위의 코드는 다음과 같은 출력을 생성합니다
a & b: 0
a == b: 1
a & b == a: 0
마지막 줄이 나를 혼란 것입니다. a & b == (unsigned int)0
및 a == (unsigned int)0
이므로 a & b == a
은 true
으로 표시해야합니까?
http://en.cppreference.com/w/cpp/language/operator_precedence –
[C++ bitwise operations] 가능한 중복 (http://stackoverflow.com/questions/14645473/c-bitwise-operations) – user2357112