मैं परिभाषा के बारे में नहीं पूछ रहा हूं बल्कि भाषा रचनाकारों ने सी ++ में विषम व्यवहार के साथ मॉड्यूलस को परिभाषित करने का विकल्प क्यों चुना। (मुझे लगता है कि जावा भी)मॉड्यूलस प्रोग्रामिंग भाषाओं में जिस तरह से परिभाषित किया गया है
मान लीजिए कि मैं कम से कम संख्या के बराबर या उसके बराबर संख्या को खोजना चाहता हूं जो f द्वारा विभाजित है।
यदि n सकारात्मक है, तो मुझे क्या करना:
if(n % f)
ans = n + f - n % f;
यदि n नकारात्मक है:
ans = n - n % f;
जाहिर है, इस परिभाषा सबसे समीचीन जब नकारात्मक और सकारात्मक संख्या के साथ काम नहीं है। तो इसे इस तरह क्यों परिभाषित किया गया था? किस मामले में यह दक्षता पैदा करता है?
क्या आप पूछ रहे हैं कि मॉड्यूलो के पास नकारात्मक ऑपरेटरों के लिए निश्चित परिभाषा क्यों नहीं है? –
http://en.wikipedia.org/wiki/Modulo_operation – starblue
स्पष्टीकरण के लिए: मैं पूछ रहा हूं कि पहली ऑपरेंड की समानता के संबंध में परिभाषा असमान है। –