दिलचस्प पोस्ट
दूसरा: फ़ोर्स क्रोम को पूरी तरह से बफर एमपी 4 वीडियो अन्य तालिका के आधार पर तालिका में सभी पंक्तियों को हटाएं सॉकेट.आईओ प्रमाणीकरण कैसे "और" ऑपरेटर एक PHP फ़ंक्शन में काम करता है? एक हैशमैप और ट्रीमार्क के बीच अंतर क्या है? एसएमटीपी सर्वर प्रतिक्रिया: 530 5.7.0 सबसे पहले एक STARTTLS आदेश जारी करना चाहिए निर्धारित करें कि चर को पायथन में परिभाषित किया गया है द्विपदीय फाइलों के साथ एक गिट संघर्ष का समाधान करना क्या एंड्रॉइड में एक टेक्स्टव्यू में खड़ी लिखना संभव है? पायथन में स्ट्रिंग्स को कैसे परिवर्तित करें? समय-समय पर AJAX अनुरोध को कैसे आग लगा सकते हैं? कैलिब्रेशन पॉइंट्स के साथ नक्शे पर XY में अक्षांश और अक्षांश को परिवर्तित करना Linq क्वेरी परिणाम में एक लाइन संख्या प्रोजेक्ट कैसे करें सिस्टम दिनांक और समय बदलने के लिए पायथन मॉड्यूल PHP में मेल इंजेक्शन की उचित रोकथाम

थोड़ा सा सेट है या नहीं, यह जांचता है

कैसे एक बाइट में एक निश्चित बिट सेट है की जांच करने के लिए?

bool IsBitSet(Byte b,byte nPos) { return .....; } 

Solutions Collecting From Web of "थोड़ा सा सेट है या नहीं, यह जांचता है"

होमवर्क की तरह थोड़ा सा लगता है, लेकिन:

 bool IsBitSet(byte b, int pos) { return (b & (1 << pos)) != 0; } 

pos 0 कम से कम महत्वपूर्ण बिट, पॉज़ 7 सबसे अधिक है।

मारियो फर्नांडीज के जवाब के आधार पर, मैंने सोचा कि मेरे टूलबॉक्स में डेटाटिप के लिए एक आसान विस्तार विधि के रूप में सीमित क्यों नहीं है, इसलिए मुझे उम्मीद है कि इसे यहां साझा करना ठीक है:

 /// <summary> /// Returns whether the bit at the specified position is set. /// </summary> /// <typeparam name="T">Any integer type.</typeparam> /// <param name="t">The value to check.</param> /// <param name="pos"> /// The position of the bit to check, 0 refers to the least significant bit. /// </param> /// <returns>true if the specified bit is on, otherwise false.</returns> public static bool IsBitSet<T>(this T t, int pos) where T : struct, IConvertible { var value = t.ToInt64(CultureInfo.CurrentCulture); return (value & (1 << pos)) != 0; } 

यहाँ शब्दों में समाधान है

वाम एक प्रारंभिक मान 1 एन बार के साथ एक पूर्णांक बदलाव और फिर एक और मूल बाइट के साथ करते हैं। यदि नतीजा शून्य है, तो बीट अन्यथा सेट नहीं है। 🙂

यह भी काम करता है (एनएटी 4 में परीक्षण किया गया है):

 void Main() { //0x05 = 101b Console.WriteLine(IsBitSet(0x05, 0)); //True Console.WriteLine(IsBitSet(0x05, 1)); //False Console.WriteLine(IsBitSet(0x05, 2)); //True } bool IsBitSet(byte b, byte nPos){ return new BitArray(new[]{b})[nPos]; } 

सही अपने इनपुट n बिट्स को नीचे बदलें और 1 के साथ मुखौटा बदलें, फिर जांच लें कि आपके पास 0 या 1 है

 x == (x | Math.Pow(2, y)); int x = 5; x == (x | Math.Pow(2, 0) //Bit 0 is ON; x == (x | Math.Pow(2, 1) //Bit 1 is OFF; x == (x | Math.Pow(2, 2) //Bit 2 is ON; 

कुछ इस तरह

 return ((0x1 << nPos) & b) != 0 

एक 16-बिट शब्द में बिट्स की जांच करने के लिए:

  Int16 WordVal = 16; for (int i = 0; i < 15; i++) { bitVal = (short) ((WordVal >> i) & 0x1); sL = String.Format("Bit #{0:d} = {1:d}", i, bitVal); Console.WriteLine(sL); }