কম্পিউটার টিউটোরিয়াল

C++-এ মাল্টিপ্লিকেশনে ইন্টিজার ওভারফ্লো চেক করা


ধরুন আমরা দুটি সংখ্যা A এবং B গুণ করে ফলাফল বের করতে চাই। আমাদের চেক করতে হবে গুণফল ৬৪-বিট ইন্টিজারের সীমা অতিক্রম করবে কিনা। ১০০ এবং ২০০ গুণ করলে ওভারফ্লো হবে না, কিন্তু ১০০০০০০০০০০ এবং -১০০০০০০০০০০ গুণ করলে ওভারফ্লো হবে।

এটি চেক করতে নিচের ধাপগুলো অনুসরণ করতে হবে:

ধাপসমূহ −

  • যদি দুটি সংখ্যার যেকোনো একটি ০ হয়, তবে ওভারফ্লো হবে না।
  • অন্যথায়, যদি দুটি সংখ্যা গুণ করে একটি দিয়ে ভাগ করলে অন্যটি পাওয়া যায়, তবে ওভারফ্লো হবে না।
  • অন্য কেসগুলোতে ওভারফ্লো হবে।

উদাহরণ

#include <iostream> #include <cmath> using namespace std; bool isMulOverflow(long long A, long long B) {    if (A == 0 || B == 0)       return false;    long long result = A * B;    if (A == result / B)       return false;    else       return true; } int main() {    long long a = 10000000000 , b = -10000000000;    if(isMulOverflow(a, b)){       cout <<"It will overflow";    }    else{       cout <<"It will not overflow";    } }

আউটপুট

It will overflow

  1. C++ কোড: ০ সমের জন্য কুয়েরি চেক করা

  2. C++ এ অনসাইনড ইন্টিজারের জন্য রিস্টোরিং ডিভিশন অ্যালগরিদম

  3. C++-এ বাইনারি ট্রিতে চাইল্ড্রেন সম প্রপার্টি যাচাই করা

  4. C++ প্রোগ্রাম: অ্যারে উপাদানগুলোর গুণফল বের করা