मैं सी ++ 11 के लिए धारा 5.6 में कुछ शब्द परिवर्तनों को देख रहा था। (मैं 2011-02-28 दिनांकित सी ++ मानक एन 3242 के मसौदे को देख रहा हूं।) नया (मसौदा) मानक वाक्य में शामिल है:सी ++ में इंटीजर डिवीजन 11
"अभिन्न ऑपरेशंस के लिए ऑपरेटर बीजगणितीय भाग को किसी भी आंशिक भाग के साथ छोड़ देता है , "
यह कथन 03 मानक (आईएसओ-आईईसी -14882-2003) के 5.6 में नहीं है, लेकिन मुझे नहीं लगता कि यह एक बदलाव है, है ना? इस प्रकार सी और सी ++ ने वर्षों तक काम किया है जब तक कि मैंने अपना दिमाग खो दिया हो (जो वैसे भी हो सकता है)।
इससे मेरे कोड में एक बड़ा अंतर आएगा। क्या इसका मतलब यह है कि '%' के परिणाम का संकेत अब भी परिभाषित किया गया है? – ThomasMcLeod
@ थॉमस एमसीएलओड: हां, पूरी '/'/'%' चीज अब हर जगह व्यवहार करने के लिए परिभाषित की गई है। क्या आप वाकई अपने कोड में एक फर्क पड़ता है? क्या आपका कार्यान्वयन उन कुछ लोगों में से एक है जो पहले से ही छोटा नहीं हुआ है? – PlasmaHH
मॉड्यूलस ऑपरेटर की व्याख्या करने के कम से कम दो तरीके हैं। अधिक आम तरीका बस विभाजन का शेष है। इस मामले में, परिणाम का संकेत उद्धरण के संकेत के समान है। उदा।, -5% -4 == 1 और& -5% 4 == -1'। एक और तरीका बीजगणितीय तरीका है, जहां मॉड ऑपरेटर ऑपरेंड की एकरूपता कक्षा देता है।इस मामले में, '% m == b' अगर और केवल तभी' m' विभाजित करता है '(बी - ए)' और परिभाषित किया जाता है कि 'm' सकारात्मक है। यहाँ। 'बी' एक गैर-ऋणात्मक रूप से 'एम' से कम है, और इसलिए' -5% 4 == 3' है। – ThomasMcLeod