Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में जांचें कि क्या किसी संख्या में दो आसन्न सेट बिट्स हैं


यहां हम देखेंगे कि क्या किसी संख्या के बाइनरी प्रतिनिधित्व में आसन्न सेट बिट्स हैं। मान लीजिए संख्या 12 में दो क्रमागत 1 हैं (12 = 1100)।

इस प्रकार की संख्या की जांच करने के लिए, विचार बहुत सरल है। हम संख्या को 1 बिट शिफ्ट करेंगे, फिर बिटवाइज AND करेंगे। यदि बिटवाइज AND परिणाम शून्येतर है, तो वहां कुछ क्रमागत 1 होने चाहिए।

उदाहरण

#include <iostream>
using namespace std;

bool hasConsecutiveOnes(int n) {
    if((n & (n >> 1)) != 0) {
        return true;
    } else {
        return false;
    }
}

int main() {
    int num = 67; // 1000011
    if(hasConsecutiveOnes(num)) {
        cout << "Has Consecutive 1s";
    } else {
        cout << "Has No Consecutive 1s";
    }
}

आउटपुट

Has Consecutive 1s

  1. - C++ में k सेट बिट्स के साथ नंबर को अधिकतम करने के लिए न्यूनतम फ्लिप्स

    समस्या कथनदो नंबर n और k दिए गए हैं, हमें दिए गए नंबर को उसके बिट्स फ्लिप करके अधिकतम करने के लिए आवश्यक न्यूनतम फ्लिप्स की संख्या ढूंढनी है जैसे कि परिणामी नंबर में ठीक k सेट बिट्स हों। कृपया ध्यान दें कि इनपुट को कंडीशन पूरी करनी चाहिए कि k, n में बिट्स की संख्या से कम हो।उदाहरणमान लीजिए n = 9 और

  1. - C++ में दो मैट्रिक्स की गुणनक्षमता जांचने का प्रोग्राम

    दो मैट्रिक्स को गुणनक्षम कहा जाता है यदि उन्हें गुणा किया जा सकता है। यह केवल तभी संभव है जब पहले मैट्रिक्स के कॉलम की संख्या दूसरे मैट्रिक्स की पंक्तियों की संख्या के बराबर हो। उदाहरण के लिए: मैट्रिक्स 1 में पंक्तियों की संख्या = 3 मैट्रिक्स 1 में कॉलम की संख्या = 2 मैट्रिक्स 2 में पंक्तियों की संख

  1. - पायथन में जांचें कि संख्या के बिट्स में लगातार सेट बिट्स की संख्या बढ़ते क्रम में है या नहीं

    मान लीजिए हमारे पास एक धनात्मक संख्या n है, हमें जांचना है कि दी गई संख्या n के बिट पैटर्न में लगातार 1s की संख्या बाएं से दाएं बढ़ते क्रम में है या नहीं। उदाहरण के लिए, यदि n = 1775 है, तो आउटपुट True होगा क्योंकि 1775 का बाइनरी प्रतिनिधित्व 11011101111 है, इसलिए लगातार 1s की संख्या [2, 3, 4] है ज