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

C++ में एक पूर्णांक का पूरक खोजें

इस भाग में, हम देखेंगे कि किसी पूर्णांक का 1 पूर्ण कैसे ज्ञात किया जाता है। हम इस कार्य को बहुत तेजी से करने के लिए पूरक ऑपरेटर का उपयोग कर सकते हैं, लेकिन यह 32 बिट पूरक मूल्य (4-बाईप पूर्णांक) बना देगा। यहाँ हम n बिट संख्याओं का पूरक चाहते हैं।

मान लीजिए कि हमारे पास एक संख्या 22 है। बाइनरी समकक्ष 10110 है। पूरक मूल्य 01001 है जो 9 के समान है। अब सवाल आता है कि इस मूल्य को कैसे खोजें? सबसे पहले हमें दी गई संख्या के बिट्स की संख्या ज्ञात करनी होगी। मान लीजिए गिनती c है (यहाँ c =5 के लिए 22)। हमें 5 1s बनाना है। तो यह 11111 होगा। इसे बनाने के लिए, हम 1 को बाएँ c संख्या में कई बार शिफ्ट करेंगे, फिर उसमें से 1 घटा देंगे। 1 को बाईं ओर 5 बार शिफ्ट करने के बाद, यह 100000 होगा, फिर 1 घटाएगा, तो यह 11111 होगा। उसके बाद पूरक प्राप्त करने के लिए 11111 और 10110 के साथ XOR ऑपरेशन करें।

उदाहरण

#include <iostream>
#include <cmath>
using namespace std;
int findComplement(int n) {
   int bit_count = floor(log2(n))+1;
   int ones = ((1 << bit_count) - 1);
   return ones ^ n;
}
int main() {
   int number = 22;
   cout << "One's Complement of " << number << " is: " << findComplement(number);
}

आउटपुट

One's Complement of 22 is: 9

  1. C++ में शतरंज की बिसात में वर्गों की संख्या ज्ञात करने का कार्यक्रम

    इस समस्या में हमें एक बिसात का आकार दिया जाता है। हमारा काम C++ में शतरंज की बिसात में वर्गों की संख्या ज्ञात करने के लिए एक प्रोग्राम बनाना है। समस्या का विवरण - शतरंज की बिसात में वर्गों की संख्या ज्ञात करना। हमें उस वर्ग के सभी संयोजनों की गणना करनी होगी जो शतरंज की बिसात के अंदर हैं यानी हम भुज

  1. पिछली संख्या C++ में 1 के पूरक के समान है

    इस समस्या में, हमें एक पूर्णांक n दिया गया है। हमारा काम मौसम की जांच करना है कि पिछली संख्या संख्या के 1 के पूरक के बराबर है। हमारी समस्या को समझने के लिए कुछ उदाहरण लेते हैं Input: 12 Output: No Explanation: (12)10 = (1100)2 Preceding number 11 = (1011)2 1’s complement of 12 = (0011)2 Input

  1. पिछला छोटा पूर्णांक जिसमें C++ में सेट बिट्स की एक कम संख्या होती है

    इस समस्या में, हमें एक पूर्णांक n दिया गया है। हमारा काम n से कम सबसे बड़ी संख्या को प्रिंट करना है जिसे संख्या के द्विआधारी प्रतिनिधित्व के एक सेट बिट को बदलकर बनाया जा सकता है। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं Input: n = 3 Output: 2 Explanation: (3)10 = (011)2 Flipping one set bit gi