जब मैं एमआईपीएस में हस्ताक्षरित पूर्णांक पर काम करने का प्रयास करता हूं, तो मैं जो भी ऑपरेशन करता हूं उसका परिणाम हस्ताक्षरित रहता है (यानी, पूर्णांक 2 के पूरक में हैं), भले ही मैं जो भी ऑपरेशन करता हूं वह एक हस्ताक्षरित है: addu
, multu
और इसलिए चौथा ...हस्ताक्षरित संख्याओं पर एमआईपीएस संचालन क्यों हस्ताक्षरित परिणाम देते हैं?
जब मैं [2^31, 2^32 - 1]
श्रेणी में संख्याओं को मुद्रित करता हूं तो मुझे उनके 'अतिप्रवाह' नकारात्मक मान मिलते हैं जैसे कि वे हस्ताक्षरित थे (मुझे लगता है कि वे हैं)।
हालांकि, जब मैं कुछ इस तरह का प्रयास करें:
li $v0, 1
li $a0, 2147483648 # or any bigger number
syscall
मुद्रित संख्या हमेशा 2147483647 (2^31 - 1)
मैं उलझन में हूँ ... मैं क्या याद आ रही है?
पीएस: मैंने अपना कोड शामिल नहीं किया है क्योंकि यह बहुत पठनीय नहीं है (जैसे असेंबली कोड) और इस समस्या को दूर करने के लिए, ठीक काम कर रहा है। अगर किसी को लगता है कि यह आवश्यक है तो मैं इसे तुरंत शामिल कर दूंगा!
मैं उत्तर के लिए नेट पर देख रहा था ... कहीं भी लेकिन स्पष्ट। धन्यवाद! – dankilman
फिर वे "चेक और अनचेक" जैसी चीज़ों के बजाय "हस्ताक्षरित और हस्ताक्षरित" शब्दावली का उपयोग क्यों करते हैं? – dan04
यह एक गलत नाम है। पहला उद्धरण पढ़ें। –