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

C में दो पूर्णांकों का बिटवाइज पुनरावर्ती योग


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

बिटवाइज ऑपरेशन का उपयोग करके योग ढूंढने का तर्क उस चीज़ के समान है जो हम प्रीस्कूल में करते थे। योग ढूंढने के लिए, हम संख्या के प्रत्येक अंक को जोड़ते थे और यदि कैरी होती है, तो हम इसे अगले अंक में जोड़ते हैं।

हम एक समान चीज़ करेंगे, XOR ऑपरेटर का उपयोग करके योग ढूंढेंगे और AND ऑपरेशन का उपयोग करके कैरी की जांच करेंगे। यदि कैरी है तो हम इसे वापस संख्या में जोड़ देंगे अन्यथा नहीं।

यह एक हाफ-एडर का तर्क है जिसे आपने डिजिटल इलेक्ट्रॉनिक्स में सीखा होगा। यहां देखें...

अब, योग की गणना a^b यानी a XOR b का उपयोग करके की जाती है और हमें एक अतिरिक्त कैरी की जांच करने की आवश्यकता होती है जिसे प्रसारित करने की आवश्यकता होती है यदि दोनों का पहला बिट सेट है या ऐसा ही। और हमें संख्या में एक अतिरिक्त सेट बिट जोड़ने की आवश्यकता होती है।

तो, एक बिट एल्गोरिदम होगा

चरण 1 - a और b का XOR ढूंढें यानी a^b और इसे परिणाम चर में संग्रहीत करें।

चरण 2 - जांचें कि क्या {(a & b) << 1} == 0

चरण 2.1 - यदि यह 0 के बराबर है, तो परिणाम प्रिंट करें, यह अंतिम परिणाम है।

चरण 2.2 - यदि यह 0 के बराबर नहीं है, तो चरण 1 पर जाएं, a = {(a & b) << 1} और b = परिणाम के साथ।

उदाहरण

एल्गोरिदम के कामकाज को स्पष्ट करने के लिए प्रोग्राम:

#include <stdio.h> int addNumbers(int a, int b) {     int carry = (a & b) << 1;     int result = a ^ b;     if (carry == 0)         return result;     else         return addNumbers(carry, result); } int main(){     int a = 54, b = 897;     printf("बिटवाइज जोड़ का उपयोग करके %d और %d का योग %d है", a, b, addNumbers(a, b));     return 0; }

आउटपुट

बिटवाइज जोड़ का उपयोग करके 54 और 897 का योग 951 है
  1. - जावास्क्रिप्ट में दो संख्याओं को लेकर पूर्णांकों की तुलना करना

    हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो दो संख्याएं लेता है, मान लीजिए num1 और num2।यदि num1, num2 से बड़ा है, तो हमारा फ़ंक्शन greater लौटाना चाहिए।यदि num2, num1 से बड़ा है, तो हमारा फ़ंक्शन smaller लौटाना चाहिए।अन्यथा, फ़ंक्शन को equal लौटाना चाहिए।उदाहरणनिम्नलिखित कोड है - num1) { return

  1. - JavaScript में पूर्णांकों की सूची में दो संख्याओं का अधिकतम गुणनफल

    हमें एक JavaScript फ़ंक्शन लिखना है जो पहली और एकमात्र आर्गुमेंट के रूप में पूर्णांकों की एक सरणी लेता है। फ़ंक्शन को सरणी के किन्हीं दो तत्वों को गुणा करके प्राप्त किए जा सकने वाले अधिकतम गुणनफल को ढूंढना चाहिए। हमारे लिए शर्त यह है कि हमें यह रैखिक समय और स्थिर स्थान में करना है। उदाहरण यदि इनपुट

  1. बिटवाइज़ ऑपरेशन्स का उपयोग करके 2 से जोड़ और गुणा करने का C प्रोग्राम बिटवाइज़ ऑपरेशन्स का उपयोग करके 2 से जोड़ और गुणा करने का C प्रोग्राम

    बिटवाइज़ ऑपरेटर्स बिट्स पर ऑपरेट करते हैं (यानी ऑपरेंड के बाइनरी मानों पर)। ऑपरेटर विवरण & बिटवाइज़ AND | बिटवाइज़ OR ^ बिटवाइज़ XOR << लेफ्ट शिफ्ट >> राइट शिफ्ट ~ वन्स कॉम्प्लीमेंट उदाहरण बिटवाइज़ ऑपरेटर्स की मदद से 2 से जोड़ और गुणा करने का C प्रोग्राम: #inclu