나는 부울 대신 C++에서 DWORD
을 사용하는 것이 처음입니다. 그러므로 제 질문을 용서하십시오. C++에서 dword를 사용하여 여러 부울 조건 확인
enum
: 나는 여러 조건을 확인하기 위해이
enum
을 사용하고
enum foo
{
foo1 = 0x0;
foo2 = 0x1
//....
}
DWORD foo;
: 나는 개별 변수의 상태를 확인해야 할 다른 파일에 이제
if(somethinghappenstothisvariable)
{
foo|= foo1;
}
if(somethinghappenstosecondvariable)
{
foo|=foo2;
}
if(foo &foo1)
{
//do something;
}
if(foo & foo2)
{
//do something;
}
내가 생각한 바 : |=
은 두 조건이 모두 true
인 경우 이의 값이 아니기 때문에 foo & foo2
이 참이되는 경우에만 DWORD
에 값을 더합니다. 1
이됩니다. 그러므로 나는 어쨌든 나는 이것을 개인 DWORD
값으로 확인할 수 있는지 궁금하게 생각하고 있었다.
foo | = foo1; == foo1 == foo1 == foo & 0 ==> 0, foo1 = 0x1 (2^0), foo2 = 0x2 (2^1), foo3 = 0x4 (2^2) ... – willll
예, 현재 구현에서 foo1은 0입니다. 최저 실제 비트는 "0"이 아닌 값 "1"입니다. "0"은 비트와 일치하지 않습니다. 각 비트 값은 전에 두 배가되어야합니다. –
고마워, 효과가 있었다. – user1435077