ओवरफ्लो फ्लैग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(10 intermediate revisions by 4 users not shown)
Line 2: Line 2:
{{Short description|Processor flag indicating whether signed arithmetic overflow has occurred}}
{{Short description|Processor flag indicating whether signed arithmetic overflow has occurred}}


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


कंप्यूटर प्रोसेसर में, '''ओवरफ़्लो फ़्लैग''' (जिसे कभी-कभी '''वी फ़्लैग''' भी कहा जाता है)  सामान्यतः सिस्टम [[स्थिति रजिस्टर]] में एक बिट होता है, जिसका उपयोग यह सूचित करने के लिए किया जाता है कि किसी ऑपरेशन में अंकगणितीय ओवरफ़्लो कब हुआ है, यह दर्शाता है कि हस्ताक्षरित दो-पूरक परिणाम  इसमें फिट नहीं होंगे परिणाम के लिए उपयोग की जाने वाली बिट्स की संख्या में फ़िट करें। कुछ आर्किटेक्चर को किसी ऑपरेशन पर स्वचालित रूप से अपवाद उत्पन्न करने के लिए कॉन्फ़िगर किया जा सकता है जिसके परिणामस्वरूप अतिप्रवाह होता है।
उदाहरण, मान लीजिए कि हम 8-बिट रजिस्टरों का उपयोग करके 127 और 127 जोड़ते हैं। 127+127 254 है, परंतु 8-बिट अंकगणितीय का उपयोग करने पर परिणाम 1111 1110 बाइनरी होगा, जो कि −2 की दो पूरक एन्कोडिंग है, जो नकारात्मक संख्या है। सकारात्मक ऑपरेंड (या इसके विपरीत) का नकारात्मक योग ओवरफ्लो है। पुन ओवरफ्लो फ्लैग सेट किया जाएगा इसलिये प्रोग्राम समस्या से अवगत हो सके और इसे कम कर सके या त्रुटि का संकेत दे सके। ओवरफ्लो फ्लैग इस प्रकार सेट किया जाता है जब सबसे महत्वपूर्ण बिट (यहां साइन बिट माना जाता है) को एक ही चिह्न के साथ दो संख्याओं को जोड़कर (या विपरीत संकेतों के साथ दो संख्याओं को घटाकर) बदल दिया जाता है। ओवरफ्लो तब नहीं हो सकता जब दो जोड़ ऑपरेंड का चिह्न अलग-अलग हो (या दो घटाव ऑपरेंड का चिह्न समान हो)।<ref>{{cite web
 
उदाहरण, मान लीजिए कि हम 8-बिट रजिस्टरों का उपयोग करके 127 और 127 जोड़ते हैं। 127+127 254 है, लेकिन 8-बिट अंकगणित का उपयोग करने पर परिणाम 1111 1110 बाइनरी होगा, जो कि −2 की दो पूरक एन्कोडिंग है, जो एक नकारात्मक संख्या है। सकारात्मक ऑपरेंड (या इसके विपरीत) का नकारात्मक योग अतिप्रवाह है। पुन ओवरफ़्लो फ़्लैग सेट किया जाएगा इसलिये प्रोग्राम समस्या से अवगत हो सके और इसे कम कर सके या त्रुटि का संकेत दे सके। ओवरफ़्लो फ़्लैग इस प्रकार सेट किया जाता है जब सबसे महत्वपूर्ण बिट (यहां साइन बिट माना जाता है) को एक ही चिह्न के साथ दो संख्याओं को जोड़कर (या विपरीत संकेतों के साथ दो संख्याओं को घटाकर) बदल दिया जाता है। ओवरफ़्लो तब नहीं हो सकता जब दो जोड़ ऑपरेंड का चिह्न अलग-अलग हो (या दो घटाव ऑपरेंड का चिह्न समान हो)।<ref>{{cite web
  |first=Igor |last=Kholodov  
  |first=Igor |last=Kholodov  
  |title=Overflow Detection: Signed Numbers Addition
  |title=Overflow Detection: Signed Numbers Addition
Line 16: Line 14:
}}</ref>
}}</ref>


जब बाइनरी मानों की व्याख्या [[अहस्ताक्षरित संख्या|अहस्ताक्षरित संख्याओं]] के रूप में की जाती है, तो अतिप्रवाह ध्वज अर्थहीन होता है और  सामान्यतः इसे नजरअंदाज कर दिया जाता है। दो के पूरक अंकगणित के फायदों में से यह है कि जोड़ और घटाव संचालन को हस्ताक्षरित और अहस्ताक्षरित ऑपरेंड के बीच अंतर करने की आवश्यकता नहीं है। इस कारण से, अधिकांश कंप्यूटर अनुदेश सेट हस्ताक्षरित और अहस्ताक्षरित ऑपरेंड के बीच अंतर नहीं करते हैं, प्रत्येक ऑपरेशन पर (हस्ताक्षरित) अतिप्रवाह और (अहस्ताक्षरित) दोनों झंडे उत्पन्न करते हैं, और जो भी रुचिकर हो उस पर ध्यान देने के लिए निर्देशों का पालन करने पर छोड़ देते हैं।<ref>{{cite web
जब बाइनरी मानों की ''व्याख्या'' अहस्ताक्षरित संख्याओं के रूप में की जाती है, तो ओवरफ्लो फ्लैग व्यर्थ होता है और  सामान्यतः इसे नजरअंदाज कर दिया जाता है। दो के पूरक अंकगणितीय के फायदों में से यह है कि जोड़ और घटाव संचालन को हस्ताक्षरित और अहस्ताक्षरित ऑपरेंड के बीच अंतर करने की आवश्यकता नहीं है। इस कारण से, अधिकांश कंप्यूटर अनुदेश सेट हस्ताक्षरित और अहस्ताक्षरित ऑपरेंड के बीच अंतर नहीं करते हैं, प्रत्येक ऑपरेशन पर (हस्ताक्षरित) ओवरफ्लो और (अहस्ताक्षरित) दोनों झंडे उत्पन्न करते हैं, और जो भी रुचिकर हो उस पर ध्यान देने के लिए निर्देशों का पालन करने पर छोड़ देते हैं।<ref>{{cite web
  |first=Ian D. |last=Allen
  |first=Ian D. |last=Allen
  |title=The CARRY flag and OVERFLOW flag in binary arithmetic
  |title=The CARRY flag and OVERFLOW flag in binary arithmetic
Line 26: Line 24:
}}</ref>
}}</ref>


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


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


==संदर्भ==
==संदर्भ==
{{reflist}}
{{reflist}}


{{X86 assembly topics}}
[[Category:All Wikipedia articles written in American English]]
[[Category: कंप्यूटर अंकगणित]]
 
 
 
[[Category: Machine Translated Page]]
[[Category:Created On 08/07/2023]]
[[Category:Created On 08/07/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Use American English from January 2019]]
[[Category:कंप्यूटर अंकगणित]]

Latest revision as of 19:04, 21 July 2023

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

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

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

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

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

संदर्भ

  1. Kholodov, Igor (1 November 2008). "Overflow Detection: Signed Numbers Addition". CIS77 Introduction to Computer Systems (course notes). Bristol Community College. Retrieved 2020-12-30.
  2. Allen, Ian D. (25 February 2011). "The CARRY flag and OVERFLOW flag in binary arithmetic". DAT 2343 Computer Systems Architecture (course notes). Algonquin College.