2012-05-18 8 views
5

MSDN:क्या .NET का पूर्णांक बस दो पूरक प्रणाली पर आधारित नहीं है?

Int32 मूल्यों, 31 बिट्स में प्रतिनिधित्व कर रहे हैं तीस सेकंड बिट के साथ एक संकेत बिट के रूप में इस्तेमाल। सकारात्मक मूल्यों को साइन-और-आयाम प्रतिनिधित्व का उपयोग करके दर्शाया जाता है। नकारात्मक मूल्य दो के पूरक प्रतिनिधित्व में हैं।

यह सच नहीं है कि sign-and-magnitude system का उपयोग कर सकारात्मक मूल्यों का प्रतिनिधित्व two's complement system का उपयोग कर सकारात्मक मूल्यों का प्रतिनिधित्व करने के लिए समान है?

तो यह के रूप में लिखा जाना चाहिए नहीं किया गया है:

"Int32 मूल्यों दो के पूरक प्रतिनिधित्व में प्रतिनिधित्व कर रहे हैं (सकारात्मक या नकारात्मक की परवाह किए बिना)", या मैं कुछ गलत समझ रहा हूँ?

+0

नहीं, मुझे ऐसा नहीं लगता है, दो के पूरक प्रतिनिधित्व के लिए पूरा कारण नकारात्मक मूल्यों पर बुनियादी संचालन का समर्थन करना है। 10000001 == -127, 00000001 == 1. दो इंटीरियर सिस्टम – Polity

+0

का उपयोग करके सकारात्मक int मानों का प्रतिनिधित्व नहीं किया जाता है, हाँ, जब आप सकारात्मक संख्याओं पर विचार कर रहे हैं तो आपको पता होना चाहिए कि उच्चतम बिट का अर्थ यह नहीं है कि "अधिक सकारात्मक" इसका मतलब है कि जब आप किसी भी संख्या पर विचार करते हैं, तो आप इसे 2 एस पूरक दृष्टिकोण से मानते हैं और यह या तो सकारात्मक या नकारात्मक के रूप में काम करेगा। –

उत्तर

6

हाँ, आप सही हैं। उन्हें यह कहना चाहिए कि यह 2 एस पूरक प्रणाली का उपयोग करता है, और उसके बाद 31 बिट्स का उपयोग करने की परिभाषा दी जाती है, और "2 एस पूरक" के रूप में नकारात्मक व्याख्या करने के बजाय नकारात्मकों के लिए थोड़ा सा प्रतिनिधित्व बताते हैं। फिर bitwise ऑपरेटरों के बारे में उनकी चेतावनी दें

1

2 का पूरक सिर्फ गणितीय ऑपरेशन है, आप वास्तव में 2 के पूरक में "इसका प्रतिनिधित्व नहीं करते हैं। अधिक जानकारी के लिए देखें http://reinventingthewheel.azurewebsites.net/TwosComplementTut.aspx

संबंधित मुद्दे