আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন 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 (&) অপারেশন দিয়ে পাওয়া যায়।
এখানে হাফ অ্যাডার লজিক এক্সটেন্ড করে দুটি ইন্টিজার যোগ করা হয়েছে। যদি x এবং y-র একই পজিশনে সেট বিট না থাকে, তবে XOR তাদের যোগফল দেয়। সাধারণ সেট বিটগুলো অন্তর্ভুক্ত করার জন্য AND ব্যবহার করা হয়েছে। (x & y) << 1 ক্যালকুলেট করে x ^ y-র সাথে যোগ করলে প্রয়োজনীয় ফলাফল পাওয়া যায়।
আউটপুট
কনসোলে আউটপুট:
100