& is the bitwise logical and operator - 2 개의 정수 값에 대해 연산을 수행합니다.
WHERE (sc.Attributes & 1) = 0
위의 코드는 sc.Attributes가 짝수인지 확인합니다. 첫 번째 비트가 설정되지 않았다는 것과 같은 말입니다.
열의 이름 때문에 "특성"인 경우 "1"값은 일부 외부 의미가있는 플래그 일뿐입니다.
속성에 대해 숫자에 저장된 각 플래그에 대해 1 진수를 사용하는 것이 일반적입니다. 따라서 첫 번째 비트를 테스트하려면 sc.Attributes & 1을 사용하고 두 번째 테스트에서는 sc.Attributes & 2를 사용하고 세 번째 테스트에서는 sc.Attributes & 4를 사용하여 sc를 사용합니다. 속성 & 8, ...
= 0 부분은 첫 번째 비트가 설정되어 있지 않은지 확인하기 위해 테스트 중입니다.
일부 바이너리 예
: (== 연산의 결과 보여주기 위해)
//Check if the first bit is set, same as sc.Attributes&1
11111111 & 00000001 == 1
11111110 & 00000001 == 0
00000001 & 00000001 == 1
//Check if the third bit is set, same as sc.Attributes&4
11111111 & 00000100 == 1
11111011 & 00000100 == 0
00000100 & 00000100 == 1
+1 아주 잘 설명했다. –
@Andrew Hare : 고마워. :) –
고마워. 그런 간단한 질문에 사과드립니다. 우수한 답변과 시간을 가져 주셔서 감사합니다. – Jimmymcnulty