কম্পিউটার

C++ এ স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য বিভাগ অ্যালগরিদম পুনরুদ্ধার করা হচ্ছে


একটি বিভাগ অ্যালগরিদম ব্যবহার করে একটি স্বাক্ষরবিহীন পূর্ণসংখ্যাকে ভাগ করার বিষয়ে আলোচনা করুন। কিছু বিভাগ অ্যালগরিদম কাগজে প্রয়োগ করা হয়, এবং অন্যগুলি ডিজিটাল সার্কিটে প্রয়োগ করা হয়। ডিভিশন অ্যালগরিদম দুই ধরনের হয়:স্লো ডিভিশন অ্যালগরিদম এবং ফাস্ট ডিভিশন অ্যালগরিদম। স্লো ডিভিশন অ্যালগরিদমের মধ্যে রয়েছে পুনরুদ্ধার, নন-পারফর্মিং রিস্টোরিং, এসআরটি এবং নন-রিস্টোরিং অ্যালগরিদম।

এই টিউটোরিয়ালে, আমরা 0 <ভাজক <লভ্যাংশ

ধরে নিয়ে পুনঃস্থাপন অ্যালগরিদম নিয়ে আলোচনা করব।

সমাধান খোঁজার পদ্ধতি

এতে, আমরা ভাগফল সঞ্চয় করতে রেজিস্টার Q, অবশিষ্টাংশ সংরক্ষণ করতে A নিবন্ধন এবং ভাজক সংরক্ষণ করতে M ব্যবহার করব। A-এর প্রারম্ভিক মান 0 রাখা হয়, এবং এর মান পুনরুদ্ধার করা হয়, এই কারণে এই পদ্ধতিটি বিভাগ পুনরুদ্ধার করছে।

  • মান সহ নিবন্ধন শুরু করুন,

    • প্রশ্ন =লভ্যাংশ,

    • A =0,

    • M =ভাজক,

    • N =লভ্যাংশের বিটের সংখ্যা।

  • লেফট শিফট AQ মানে রেজিস্টার A এবং Q কে একক ইউনিট হিসেবে নেওয়া।

  • M এর সাথে A বিয়োগ করুন এবং A এ সংরক্ষণ করুন।

  • A:

    এর সবচেয়ে উল্লেখযোগ্য বিটটি পরীক্ষা করুন
    • যদি এটি 0 হয়, সর্বনিম্ন উল্লেখযোগ্য বিট 1 এ সেট করুন।

    • অন্যথায়, ন্যূনতম তাৎপর্যপূর্ণ বিট 0 এ সেট করুন।

  • A এর মান পুনরুদ্ধার করুন এবং কাউন্টার N এর মান হ্রাস করুন।

  • যদি N =0, লুপ ভাঙ্গুন; অন্যথায়, ধাপ 2 এ যান।

  • ভাগফল রেজিস্টার Q.

    এ সংরক্ষণ করা হয়

ফ্লো চার্ট

C++ এ স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য বিভাগ অ্যালগরিদম পুনরুদ্ধার করা হচ্ছে

উদাহরণ

উপরের পদ্ধতির জন্য C++ কোড

#include <iostream>
using namespace std;
int main(){
   // initializing all the variables with Dividend = 9, Divisor = 2.
   int Q = 8,q=1,M=3;
   short N = 4;
   int A = Q;
   M <<= N;
   // loop for division by bit operation.
   for(int i=N-1; i>=0; i--) {
      A = (A << 1)- M;
      // checking MSB of A.
      if(A < 0) {
         q &= ~(1 << i);  // set i-th bit to 0
         A = A + M;
      } else {
         q |= 1 << i;     // set i-th bit to 1
      }
   }
   cout << "Quotient: "<< q;
   return 0;
}

আউটপুট

Quotient: 2

উপসংহার

এই টিউটোরিয়ালে, আমরা একটি স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য পুনরুদ্ধার বিভাগ অ্যালগরিদম নিয়ে আলোচনা করেছি। আমরা একটি ফ্লো চার্ট এবং বিট অপারেশন প্রয়োগের সাহায্যে এই সমস্যাটি সমাধান করার জন্য একটি সহজ পদ্ধতি নিয়ে আলোচনা করেছি। আমরা এই সমস্যার জন্য C++ প্রোগ্রাম নিয়েও আলোচনা করেছি যা আমরা সি, জাভা, পাইথন ইত্যাদি প্রোগ্রামিং ভাষার সাথে করতে পারি। আমরা আশা করি এই টিউটোরিয়ালটি আপনার কাজে লাগবে।


  1. মেমরি ম্যানেজমেন্টে সেরা ফিট অ্যালগরিদমের জন্য C++ প্রোগ্রাম

  2. সর্বোত্তম পৃষ্ঠা প্রতিস্থাপন অ্যালগরিদমের জন্য C++ প্রোগ্রাম

  3. সি++ এ ইউলারিয়ান পাথ বা সার্কিট প্রিন্ট করার জন্য ফ্লুরির অ্যালগরিদম

  4. কিভাবে C++ এ পূর্ণসংখ্যা ওভারফ্লো সনাক্ত করবেন?