ओवरफ्लो फ्लैग

कंप्यूटर प्रोसेसर में, अतिप्रवाह निशान (जिसे कभी-कभी इसे वी निशान भी कहा जाता है) सामान्यतः सिस्टम स्थिति रजिस्टर में केवल एक बिट होता है, जिसका उपयोग यह सूचित करने के लिए किया जाता है कि किसी ऑपरेशन में अंकगणितीय अतिप्रवाह कब हुआ है, यह दर्शाता है कि सांकेतिक दो-पूरक परिणाम इसमें फिट नहीं होंगे परिणाम के लिए प्रयुक्त की जाने वाली बिट्स की संख्या। कुछ वास्तुकला को किसी ऑपरेशन पर स्वचालित रूप से अपवाद उत्पन्न करने के लिए कॉन्फ़िगर किया जा सकता है जिसके परिणामस्वरूप अतिप्रवाह होता है।

उदाहरण, मान लीजिए कि हम 8-बिट रजिस्टरों का उपयोग करके 127 और 127 जोड़ते हैं। 127+127 254 है, परंतु 8-बिट अंकगणितीय का उपयोग करने पर परिणाम 1111 1110 बाइनरी होगा, जो कि −2 की दो पूरक एन्कोडिंग है, जो नकारात्मक संख्या है। सकारात्मक ऑपरेंड (या इसके विपरीत) का नकारात्मक योग अतिप्रवाह है। पुन अतिप्रवाह निशान सेट किया जाएगा इसलिये प्रोग्राम समस्या से अवगत हो सके और इसे कम कर सके या त्रुटि का संकेत दे सके। अतिप्रवाह निशान इस प्रकार सेट किया जाता है जब सबसे महत्वपूर्ण बिट (यहां साइन बिट माना जाता है) को एक ही चिह्न के साथ दो संख्याओं को जोड़कर (या विपरीत संकेतों के साथ दो संख्याओं को घटाकर) बदल दिया जाता है। अतिप्रवाह तब नहीं हो सकता जब दो जोड़ ऑपरेंड का चिह्न अलग-अलग हो (या दो घटाव ऑपरेंड का चिह्न समान हो)।

जब बाइनरी मानों की व्याख्या अहस्ताक्षरित संख्याओं के रूप में की जाती है, तो अतिप्रवाह निशान व्यर्थ होता है और सामान्यतः इसे नजरअंदाज कर दिया जाता है। दो के पूरक अंकगणितीय के फायदों में से यह है कि जोड़ और घटाव संचालन को हस्ताक्षरित और अहस्ताक्षरित ऑपरेंड के बीच अंतर करने की आवश्यकता नहीं है। इस कारण से, अधिकांश कंप्यूटर अनुदेश सेट हस्ताक्षरित और अहस्ताक्षरित ऑपरेंड के बीच अंतर नहीं करते हैं, प्रत्येक ऑपरेशन पर (हस्ताक्षरित) अतिप्रवाह और (अहस्ताक्षरित) दोनों झंडे उत्पन्न करते हैं, और जो भी रुचिकर हो उस पर ध्यान देने के लिए निर्देशों का पालन करने पर छोड़ देते हैं।

आंतरिक रूप से, अतिप्रवाह निशान सामान्यतः साइन बिट के अंदर और बाहर एक विशेष या आंतरिक कैरी निशान द्वारा उत्पन्न होता है।

बिटवाइज़ संचालन (और, या, एक्सओआर, नॉट, रोटेट) में हस्ताक्षरित ओवरफ्लो की धारणा नहीं है, इसलिए परिभाषित मान विभिन्न प्रोसेसर वास्तुकला पर भिन्न होता है। कुछ प्रोसेसर बिट को बिना शर्त साफ़ करते हैं (जो उपयोगी है क्योंकि बिटवाइज़ ऑपरेशन साइन निशान सेट करते हैं, और स्पष्ट अतिप्रवाह निशान तब सूचित करता है कि साइन निशान मान्य है), अन्य इसे अपरिवर्तित छोड़ देते हैं, और कुछ इसे अपरिभाषित व्यवहार मान पर सेट करते हैं। बदलाव और गुणन अच्छी तरह से परिभाषित मूल्य की अनुमति देते हैं, लेकिन इसे लगातार लागू नहीं किया जाता है। उदाहरण के लिए, x86 अनुदेश सेट केवल गुणकों और 1-बिट बदलावों के लिए अतिप्रवाह निशान को परिभाषित करता है, बहु-बिट बदलाव इसे अपरिभाषित छोड़ देते हैं।