কম্পিউটার

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


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

উদাহরণ কোড

unsigned int x, y;
unsigned int value = x + y;
bool overflow = value < x; // Alternatively "value < y" should also work

এর কারণ যদি x এবং y উভয়ই স্বাক্ষরবিহীন ইন্ট হয়, যদি যোগ করা হয় এবং সেগুলি ওভারফ্লো হয়, তবে তাদের মান দুটির চেয়ে বেশি হতে পারে না কারণ এটি মোড়ানো এবং এগিয়ে যেতে সক্ষম হওয়ার জন্য সর্বাধিক সম্ভাব্য আনসাইনড int এর চেয়ে বড় হতে হবে এই মানগুলির মধ্যে।

আরেকটি উপায় হল আপনার CPU-তে ওভারফ্লো ফ্ল্যাগ ব্যবহার করার চেষ্টা করা। কিছু কম্পাইলার এটিতে অ্যাক্সেস সরবরাহ করে যা আপনি তখন পরীক্ষা করতে পারেন তবে এটি মানক নয়৷


  1. C++ এ পূর্ণসংখ্যা ওভারফ্লো পরীক্ষা করুন

  2. কিভাবে একটি প্রিপ্রসেসর C/C++ এ কাজ করে?

  3. একটি C/C++ স্ট্রিং একটি int কিনা তা কীভাবে পরীক্ষা করবেন?

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