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

C/C++ में इंटीजर ओवरफ्लो का पता कैसे लगाएं?


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

उदाहरण कोड

unsigned int x, y;
unsigned int value = x + y;
bool overflow = value < x; // वैकल्पिक रूप से "value < y" भी काम करना चाहिए

ऐसा इसलिए है क्योंकि यदि x और y दोनों अनसाइन्ड इंट हैं, यदि जोड़े जाने पर वे ओवरफ्लो करते हैं, तो उनके मान उनमें से किसी से भी अधिक नहीं हो सकते क्योंकि मैक्सिमम संभावित अनसाइन्ड इंट से अधिक होना आवश्यक होगा ताकि रैप अराउंड होकर इन मानों से आगे निकल सके।

एक और तरीका है अपने CPU में ओवरफ्लो फ्लैग तक पहुंचने का प्रयास करना। कुछ कंपाइलर्स इसके लिए एक्सेस प्रदान करते हैं जिसे आप टेस्ट कर सकते हैं लेकिन यह स्टैंडर्ड नहीं है।

  1. - C/C++ में प्रीप्रोसेसर कैसे काम करता है?

    प्रीप्रोसेसर क्या है? प्रीप्रोसेसर डायरेक्टिव्स हैं, जो कंपाइलर को वास्तविक कंपाइलेशन शुरू होने से पहले जानकारी को प्रीप्रोसेस करने के निर्देश देते हैं। सभी प्रीप्रोसेसर डायरेक्टिव्स # से शुरू होते हैं, और एक लाइन पर प्रीप्रोसेसर डायरेक्टिव से पहले केवल व्हाइट-स्पेस कैरेक्टर्स आ सकते हैं। प्रीप्रोस

  1. - C/C++ में कैसे जांचें कि स्ट्रिंग इंटीजर है?

    यह जांचने के कई तरीके हैं कि स्ट्रिंग इंटीजर है या नहीं और उनमें से एक तरीका isdigit() का उपयोग करके स्ट्रिंग की जांच करना है। उदाहरण #include <iostream> #include <string.h> using namespace std; int main() { char str[] = 3257fg; for (int i = 0; i < strlen(str); i++) {

  1. - C++ में इंटीजर ओवरफ्लो का पता कैसे लगाएं?

    एकमात्र सुरक्षित तरीका यह है कि ओवरफ्लो होने से पहले उसकी जांच की जाए। इंटीजर ओवरफ्लो की जांच के कुछ हैकी तरीके हैं। इसलिए यदि आप अनसाइन्ड इंट एडिशन में ओवरफ्लो का पता लगाने का लक्ष्य रखते हैं, तो आप जांच सकते हैं कि क्या परिणाम वास्तव में जोड़े गए किसी भी मान से कम है। उदाहरण के लिए, unsigned int