&बिटवाइज़ लॉजिकल और ऑपरेटर है - यह 2 पूर्णांक मानों पर ऑपरेशन करता है।
WHERE (sc.Attributes & 1) = 0
उपरोक्त कोड यह देखने के लिए जांचता है कि क्या sc.Attributes एक सम संख्या है। जो यह कहने के समान है कि पहला बिट सेट नहीं है।
हालांकि कॉलम के नाम के कारण:"विशेषताएं", तो "1" मान शायद कुछ ध्वज है जिसका कुछ बाहरी अर्थ है।
विशेषताओं के लिए किसी संख्या में संग्रहीत प्रत्येक ध्वज के लिए 1 बाइनरी अंक का उपयोग करना आम है। तो पहली बिट के लिए परीक्षण करने के लिए आप sc.Attributes&1 का उपयोग करते हैं, दूसरे के लिए परीक्षण करने के लिए आप sc.Attributes&2 का उपयोग करते हैं, तीसरे के लिए परीक्षण करने के लिए आप sc.Attributes&4 का उपयोग करते हैं, चौथे के लिए परीक्षण करने के लिए sc.Attributes&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