/ / c + में आप (a & 1) से क्या मतलब है? [डुप्लिकेट] - सी ++, बिटवाइज़-ऑपरेटर्स, बिटवाइज़-एंड

सी ++ में आपका मतलब क्या है (ए और 1)? [डुप्लिकेट] - सी ++, बिटवाई-ऑपरेटर, बिटवाई-और

कुछ 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 का उपयोग करने की तुलना में काफी तेज है।