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

C++ में एक सेट बिट कम वाली पिछली छोटी पूर्णांक


इस समस्या में, हमें एक इंटीजर n दिया गया है। हमारा कार्य n से कम सबसे बड़ी संख्या प्रिंट करना है जिसे संख्या के बाइनरी प्रतिनिधित्व के एक सेट बिट को बदलकर बनाया जा सकता है।

समस्या को समझने के लिए एक उदाहरण लेते हैं

Input: n = 3 Output: 2 Explanation: (3)10 = (011)2 एक सेट बिट फ्लिप करने पर 001 और 010 मिलते हैं। 010 बड़ा है यानी 2।

इस समस्या को हल करने के लिए, हमें राइटमोस्ट सेट बिट को फ्लिप करके शून्य बनाना होगा जो उस संख्या से कम सबसे बड़ी संभव संख्या बनाएगा जो संख्या के एक बिट को फ्लिप करके पाई जाती है।

हमारे समाधान के कार्यान्वयन को दिखाने वाला प्रोग्राम,

उदाहरण

#include<iostream> #include<math.h> using namespace std; int returnRightSetBit(int n) {    return log2(n & -n) + 1; } void previousSmallerInteger(int n) {    int rightBit = returnRightSetBit(n);    cout<<(n&~(1<<(rightBit - 1))); } int main() {    int n = 3452;    cout<<"The number is "<<n<<"\nThe greatest integer smaller than the number is : ";    previousSmallerInteger(n);    return 0; }

आउटपुट

The number is 3452 The greatest integer smaller than the number is : 3448

  1. - C++ में इंटीजर का वन्स कॉम्प्लीमेंट खोजें

    इस सेक्शन में, हम देखेंगे कि इंटीजर का 1s कॉम्प्लीमेंट कैसे खोजें। हम कॉम्प्लीमेंट ऑपरेटर का उपयोग करके यह कार्य बहुत तेजी से कर सकते हैं, लेकिन यह 32-बिट कॉम्प्लीमेंटेड वैल्यू बनाएगा (4-बाइट इंटीजर)। यहां हम n-बिट नंबर्स का कॉम्प्लीमेंट चाहते हैं।मान लीजिए हमारे पास एक नंबर है जैसे 22। इसका बाइनरी

  1. - C++ में सेट बिट्स की संख्या के अनुसार ऐरे सॉर्ट करें

    यहां हम सेट-बिट्स के आधार पर ऐरे को सॉर्ट करने की एक दिलचस्प समस्या देखेंगे। जब ऐरे में किसी एलिमेंट में अधिक सेट-बिट्स होते हैं, तो उसे उस एलिमेंट से पहले रखा जाएगा जिसमें कम सेट बिट्स होते हैं। मान लीजिए कुछ नंबर्स हैं 12, 15, 7। तो सेट बिट्स मूल रूप से उनके बाइनरी प्रतिनिधित्व में 1s की संख्या है

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

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