हमें एक JavaScript फ़ंक्शन add() लिखना है जो दो संख्याएं m और n लेता है। फ़ंक्शन को, चार बुनियादी अंकगणितीय संचालन का उपयोग किए बिना, इनपुट के रूप में ली गई दो संख्याओं को जोड़ना चाहिए और योग वापस करना चाहिए।
कोड
const m = 67, n = 33; const add = (x, y) => { while(y !== 0){ let carry = x & y; x = x ^ y; y = carry << 1; }; return x; }; console.log(add(m, n));व्याख्या
दो बिट्स का योग उन दो बिट्स का XOR (^) करके प्राप्त किया जा सकता है। और कैरी बिट उन दो बिट्स का AND (&) करके प्राप्त की जा सकती है।
हमने यहां हाफ एडर लॉजिक के एक विस्तारित संस्करण का उपयोग किया है जिसका उपयोग 2 सिंगल बिट्स को जोड़ने के लिए दो पूर्णांकों को जोड़ने के लिए किया जा सकता है। यदि x और y में समान स्थिति(यों) पर सेट बिट्स नहीं हैं, तो x और y का बिटवाइज़ XOR (^) x और y का योग देता है।
सामान्य सेट बिट्स को शामिल करने के लिए, बिटवाइज़ AND (&) का उपयोग किया जाता है। x और y का बिटवाइज़ AND सभी कैरी बिट्स देता है। हमने (x & y) << 1 की गणना की और इसे x ^ y में जोड़कर आवश्यक परिणाम प्राप्त किया।
आउटपुट
कंसोल में आउटपुट होगा:
100