कुछ c ++ कोड में मैंने देखा है कि कोई व्यक्ति जैसे स्टेटमेंट का उपयोग कर रहा है
while(a) { //here a is an integer variable
if(a&1) {
//some expression
}
}
अब मेरा सवाल है कि इसका अर्थ क्या है a&1
?
उत्तर:
जवाब के लिए 2 № 1यहाँ, &
है bitwise और ऑपरेटर।
a&1
(या यों कहें a & 1
) एलएसबी की जांच करता है a
SET होना या न होना।
जवाब के लिए 2 № 2
यह जांचता है कि बिटवाइज़ का उपयोग करके कोई संख्या विषम है या नहींसंचालन। एक द्विआधारी संख्या में अंतिम बिट लोगों का स्थान (या 2 ^ 0 स्थान) है। सभी विषम संख्याएँ इस बिट को चालू करने वाली हैं; यह वही है जो उन्हें अजीब बनाता है। इसलिए, यह जांच कर कि क्या किसी नंबर पर उसका अंतिम बिट है (जो कि है & 1
करता है), आप वास्तव में जाँच कर रहे हैं कि यह विषम है या नहीं। चूंकि यह बिटवाइज़ ऑपरेशंस का उपयोग करता है, इसलिए यह इस उद्देश्य के लिए मोडुलो 2 का उपयोग करने की तुलना में काफी तेज है।