Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

बाइनरी नंबर सिस्टम - C/C++ में अंकगणितीय जोड़ में ओवरफ्लो

2's कॉम्प्लीमेंट नंबर सिस्टम कंप्यूटर आर्किटेक्चर में व्यापक रूप से लागू है।

N-बिट 2's कॉम्प्लीमेंट नंबर सिस्टम -2^(n-1) से 2^(n-1)-1 तक की संख्याओं को दर्शाने में सक्षम है।

4 बिट -8 से 7 तक की संख्याओं को दर्शाने में सक्षम है।

5 बिट 2's कॉम्प्लीमेंटरी सिस्टम में -16 से 15 तक की संख्याओं को दर्शाने में सक्षम है।

ओवरफ्लो जोड़ के संबंध में तब होता है जब 2 N-बिट 2's कॉम्प्लीमेंट नंबर्स को जोड़ा जाता है और उत्तर उस N-बिट ग्रुप में फिट होने के लिए बहुत बड़ा होता है।

एक कंप्यूटर में N-बिट फिक्स्ड रजिस्टर्स होते हैं। दो N-बिट नंबर्स के जोड़ का परिणाम अधिकतम N+1 बिट नंबर होगा।

कैरी फ्लैग उस एक्स्ट्रा बिट को स्टोर करता है। लेकिन कैरी हमेशा ओवरफ्लो निर्दिष्ट नहीं करता।

ओवरफ्लो डिटेक्शन

ओवरफ्लो तब होता है जब -

  • दो नेगेटिव नंबर्स के जोड़ का परिणाम पॉजिटिव हो या

  • दो पॉजिटिव नंबर्स के जोड़ का परिणाम नेगेटिव हो।

तो ओवरफ्लो का पता दो ऑपरेंड्स और परिणाम के मोस्ट सिग्निफिकेंट बिट (MSB) को वेरिफाई करके लगाया जा सकता है। लेकिन 3-बिट कम्पेरेटर लागू करने के बजाय ओवरफ्लो का पता MSB के कैरी-इन और कैरी-आउट को वेरिफाई करके 2-बिट कम्पेरेटर लागू करके भी लगाया जा सकता है। हम 2's कॉम्प्लीमेंट नंबर के N-बिट जोड़ पर विचार करते हैं।

बाइनरी नंबर सिस्टम - C/C++ में अंकगणितीय जोड़ में ओवरफ्लो


ओवरफ्लो तब होता है जब कैरी-इन कैरी-आउट के बराबर नहीं होता। ओवरफ्लो के लिए उपरोक्त अभिव्यक्ति को नीचे दिए गए विश्लेषण से समझा जा सकता है।

बाइनरी नंबर सिस्टम - C/C++ में अंकगणितीय जोड़ में ओवरफ्लो


पहले चित्र के मामले में दो नंबर्स के MSB 0 हैं जो इंगित करते हैं कि वे पॉजिटिव हैं। यहां यदि कैरी-इन 1 है तो हमें परिणाम का MSB 1 मिलता है जो इंगित करता है कि परिणाम नेगेटिव है (ओवरफ्लो) और कैरी-आउट 0 है। कैरी-इन कैरी-आउट के बराबर नहीं है इसलिए ओवरफ्लो।

दूसरे चित्र के मामले में दो नंबर्स के MSB 1 हैं जो इंगित करते हैं कि वे नेगेटिव हैं। यहां यदि कैरी-इन 0 है तो हमें परिणाम का MSB 0 मिलता है जो इंगित करता है कि परिणाम पॉजिटिव है (ओवरफ्लो) और कैरी-आउट 1 है। कैरी-इन कैरी-आउट के बराबर नहीं है इसलिए ओवरफ्लो।

तो MSB पर कैरी-इन और कैरी-आउट ओवरफ्लो का पता लगाने के लिए पर्याप्त हैं।

बाइनरी नंबर सिस्टम - C/C++ में अंकगणितीय जोड़ में ओवरफ्लो


उपरोक्त XOR गेट को ओवरफ्लो का पता लगाने के लिए लागू किया जा सकता है।

  1. C/C++ में System() फंक्शन C/C++ में System() फंक्शन

    दिया गया कार्य C/C++ में system() के कार्य को दिखाना है। system() फंक्शन C/C++ स्टैंडर्ड लाइब्रेरी का एक हिस्सा है। इसका उपयोग उन कमांड्स को पास करने के लिए किया जाता है जिन्हें ऑपरेटिंग सिस्टम के कमांड प्रोसेसर या टर्मिनल में निष्पादित किया जा सकता है, और अंत में कमांड के पूरा होने के बाद लौटाता है

  1. त्रिकोणीय माचिस संख्या (Triangular Matchstick Number) के लिए C/C++ प्रोग्राम? त्रिकोणीय माचिस संख्या (Triangular Matchstick Number) के लिए C/C++ प्रोग्राम?

    माचिस की तीलियों का उपयोग करके बनाया गया एक त्रिकोण जो एक समबाहु त्रिकोण बनाने के लिए व्यवस्थित होता है, इसे त्रिकोणीय माचिस संख्या कहा जाता है। त्रिकोणीय माचिस संख्या माचिस त्रिकोण बनाने के लिए आवश्यक माचिस की तीलियों की संख्या है। इस समस्या में, हमारे पास माचिस पिरामिड की मंजिलों की संख्या X है।

  1. nवीं कैटलन संख्या (nth Catalan Number) के लिए C/C++ प्रोग्राम? nवीं कैटलन संख्या (nth Catalan Number) के लिए C/C++ प्रोग्राम?

    कैटलन संख्याएं (Catalan numbers) संख्याओं का एक अनुक्रम है। कैटलन संख्याएं प्राकृतिक संख्याओं का एक अनुक्रम बनाती हैं जो विभिन्न गणना समस्याओं में होती हैं, अक्सर पुनरावर्ती रूप से परिभाषित वस्तुओं से जुड़ी होती हैं। Cₙ लंबाई 2n के डाइक शब्दों (Dyck words) की संख्या है। एक डाइक शब्द n Xs और n Ys