আমি এই বিষয়ে সত্যই কোনও "প্রামাণিক" উত্সটি খুঁজে পাচ্ছি না, কারণ এটি সম্ভবত একটি সম্মেলনের বিষয়, এবং পরিভাষা প্রায়শই খুব বেমানান। তবে, রবার্ট সিকর্ডের " সি এবং সি ++ এ সিকিউর কোডিং " এর নিম্নোক্ত অংশগুলি পরিস্থিতি সম্পর্কে আমার বোঝার সংস্থান করে :
একটি পূর্ণসংখ্যা ওভারফ্লো তখন ঘটে যখন কোনও পূর্ণসংখ্যা তার সর্বাধিক মানের বাইরে বা তার সর্বনিম্ন মান 3 এর বাইরে হ্রাস পায় । পূর্ণসংখ্যার ওভারফ্লোগুলি অন্তর্নিহিত উপস্থাপনার সাথে নিবিড়ভাবে সম্পর্কিত।
পাদটীকাটি আরও বলে:
[3] একটি পূর্ণসংখ্যার সর্বনিম্ন মানের চেয়ে কম হওয়াটিকে প্রায়শই একটি পূর্ণসংখ্যার আন্ডারফ্লো হিসাবে উল্লেখ করা হয় , যদিও প্রযুক্তিগতভাবে এই শব্দটি একটি ভাসমান বিন্দু শর্তকে বোঝায়।
আমরা একে পূর্ণসংখ্যার ওভারফ্লো বলার কারণ হ'ল ধরণের পরিমাণ উপস্থাপনের জন্য পর্যাপ্ত জায়গা উপলব্ধ নেই। যে অর্থে, এটা একটা বাফার ওভারফ্লো অনুরূপ (বরং আসলে বাফার সীমানা, এটি সাধারণত চিত্র প্রদর্শনীতেও মোড়ানো-অ্যারাউন্ড আচরণ উত্তরণ চেয়ে ব্যতীত। *) এই দৃষ্টিকোণ থেকে, সেখানে মধ্যে কোনো ধারণাগত পার্থক্য আছে INT_MIN - 1
এবং INT_MAX + 1
। উভয় ক্ষেত্রেই উভয়ই int
মান উপস্থাপনের জন্য ডেটা টাইপের পর্যাপ্ত স্থান নেই - সুতরাং আমাদের যা আছে তা একটি ওভারফ্লো ।
এটি উল্লেখ করাও কার্যকর হতে পারে যে x86 এবং x86_64 প্রসেসরের আর্কিটেকচারে, পতাকা নিবন্ধগুলিতে একটি ওভারফ্লো বিট অন্তর্ভুক্ত রয়েছে । ওভারফ্লো বিট সেট হয় যখন একটি স্বাক্ষরিত পূর্ণসংখ্যা গণিত অপারেশন ওভারফ্লো হয়। এক্সপ্রেশনটি INT_MIN - 1
ওভারফ্লো বিট সেট করবে। (কোনও "আন্ডারফ্লো" বিট নেই)) সুতরাং স্পষ্টতই, এএমডি এবং ইন্টেলের প্রকৌশলীরা একটি পূর্ণসংখ্যার গাণিতিক ক্রিয়াকলাপের ফলাফলটি বর্ণনা করতে "ওভারফ্লো" শব্দটি ব্যবহার করেন যা ডেটা টাইপের ক্ষেত্রে অনেকগুলি বিট থাকে, তা নির্বিশেষে মান সংখ্যাটি খুব বড় বা খুব ছোট।
* আসলে, সি-তে স্বাক্ষরিত পূর্ণসংখ্যা ওভারফ্লো আসলে সংজ্ঞায়িত আচরণ, তবে জাভা হিসাবে অন্যান্য ভাষায়, দুটির পরিপূরক গাণিতিক চারপাশে মোড়ানো হবে।
INT_MIN - 1
বাINT_MAX + 1