सी # में विभिन्न मूल्य प्रकार हैं, और प्रत्येक अपना स्वयं का उद्देश्य प्रदान करता है। Int32 - (0x7FFFFFFF + 1) से 0x7FFFFFFF तक है, और प्रत्येक मशीन से मैंने इसे कभी भी चलाया है, ऐसा लगता है कि अनचेक ((int) 0xFFFFFFFF) हमेशा मुझे परिणामस्वरूप मान -1 प्राप्त करता है। क्या यह हमेशा मामला है? इसके अलावा, क्या .NET हमेशा किसी भी सिस्टम पर स्मृति में 0xFFFFFFFF के रूप में प्रतिनिधित्व करता है? क्या अग्रणी बिट हमेशा साइन बिट है? क्या यह हमेशा पूर्णांक के लिए दो के पूरक हस्ताक्षर बाइनरी प्रतिनिधित्व का उपयोग करता है?जिस तरह से सी # स्मृति में नकारात्मक पूर्णांक का प्रतिनिधित्व करता है और उन्हें अनचेक किया जाता है
जिस तरह से सी # स्मृति में नकारात्मक पूर्णांक का प्रतिनिधित्व करता है और उन्हें अनचेक किया जाता है
उत्तर
System.Int32 के लिए प्रलेखन स्पष्ट रूप से बताता है कि यह दो के प्रशंसा फॉर्म में संग्रहीत है। यह बहुत ही तल पर है:
दशमलव मूल्यों के रूप में अलग-अलग पूर्णांकों के साथ काम करने के अलावा, आप पूर्णांक मूल्यों के साथ बिटवाइज़ कार्रवाई करने, या पूर्णांक मूल्यों की बाइनरी या हेक्साडेसिमल प्रतिनिधित्व के साथ काम करने के लिए कर सकते हैं। इंट 32 मान 31 बिट्स में दर्शाए जाते हैं, जिसमें तीस-बिट बिट साइन बिट के रूप में उपयोग किया जाता है। सकारात्मक मान साइन-और-आयाम प्रतिनिधित्व का उपयोग करके दर्शाए जाते हैं। नकारात्मक मान दो पूरक प्रतिनिधित्व में हैं। यह ध्यान रखना महत्वपूर्ण है कि जब आप Int32 मानों पर बिटवाईर संचालन करते हैं या जब आप व्यक्तिगत बिट्स के साथ काम करते हैं। किसी भी दो गैर-दशमलव मानों पर एक संख्यात्मक, बूलियन, या तुलना ऑपरेशन करने के लिए, दोनों मानों को उसी प्रतिनिधित्व का उपयोग करना चाहिए।
तो ऐसा लगता है कि आपके सभी प्रश्नों का उत्तर हाँ है।
इसके अलावा इंट 32 के लिए सीमा - (0x80000000) से 0x7FFFFFFFF तक है।
सी # - साथ ही ग्रह पर हर दूसरे 'पुटर' - 2 के पूरक नोटेशन में पूर्णांक का प्रतिनिधित्व करता है। मेरा मानना है कि एक बिंदु या दूसरे पर, सीपीयू डिजाइन किए गए हैं जो अन्य प्रतिनिधित्व का उपयोग करते हैं, लेकिन इन दिनों, आप 2 भरोसेमंद नोटेशन में प्रतिनिधित्व करने वाले पूर्णांक पर भरोसेमंद निर्भर कर सकते हैं।
हम बाएं से दाएं बिट्स गिनती, दायीं बिट के साथ, कम से कम महत्वपूर्ण बिट और वाम-पंथी बिट इनमें सबसे महत्वपूर्ण रहा जा रहा है थोड़ा 0।
उच्च-आदेश (बाएं) थोड़ा सा संकेत है: 0 सकारात्मक है; 1 नकारात्मक है।
शेष बिट्स मूल्य लेते हैं। इसका मतलब है कि आकार एन बिट्स के पूर्णांक का वैध डोमेन है - (2 n-1) < = x < = + (2 n-1 -1)। जो कहने के लिए, एक और नकारात्मक संख्या का प्रतिनिधित्व सकारात्मक संख्या से किया जा सकता है: 16-बिट हस्ताक्षरित पूर्णांक के लिए, डोमेन -32,768 से +32,767 है।
दो के पूरक में एक नंबर में कहें आसान है:
- द्विआधारी/आधार -2 अंकन करने के लिए अपने निरपेक्ष मान परिवर्तित करते हैं।
- अगर मान ऋणात्मक है,
- की विपरीत बिट्स
- जोड़ने 1
तो, मूल्य +1 0x0001 के रूप में है, जबकि -1
के रूप में प्रस्तुत किया जाता है का प्रतिनिधित्व करती है- 0x0001 (बाइनरी में 1 का पूर्ण मूल्य)
- 0xFFFE (बिट्स उलटा हुआ)
- 0xFFFF (जोड़ने 1)
या 0xFFFF
दो के पूरक अंकन के लिए कारण यह है कि यह सीपीयू डिजाइन सरल बनाता है: के बाद से घटाव नकारात्मक के अलावा है (उदाहरण के लिए को 3-2 से 3 + -2) के रूप में ही है, वे घटाव सर्किट डिजाइन करने के लिए की जरूरत नहीं है:
1-1 के रूप में 1 + -1 में ही है और शून्य करने के लिए मूल्यांकन करता है।
या हेक्स में,
0x0001 (decimal +1) + 0xFFFF (decimal -1) ====== 0x0000 (decimal 0)
सबसे सीपीयू पर, में या उच्च आदेश बिट के बाहर ले जाने के नियत बिन्दु अतिप्रवाह झंडा सेट।
- 1. स्मृति में एक बूल का प्रतिनिधित्व कैसे किया जाता है?
- 2. जिस तरह से पीडीओ parametrized क्वेरी काम करता है
- 3. वेब.कॉन्फिग फ़ाइल में enums का प्रतिनिधित्व कैसे किया जाता है?
- 4. कंपाइलर और नकारात्मक संख्या प्रतिनिधित्व
- 5. decltype के व्यवहार ने जिस तरह से परिभाषित किया है?
- 6. मॉड्यूलस प्रोग्रामिंग भाषाओं में जिस तरह से परिभाषित किया गया है
- 7. बिट्स नकारात्मक संख्याओं का प्रतिनिधित्व
- 8. WPF क्यों C++ का समर्थन नहीं करता है। नेट - WinForms जिस तरह से करता है?
- 9. कैसे स्मृति 1 से पूर्णांक की सरणी शुरू करता है?
- 10. "उचित" जिस तरह से सी ++/एसटीएल
- 11. क्या सी ++ टेम्पलेट स्मृति का उपयोग करता है यदि इसे कभी संदर्भित नहीं किया जाता है?
- 12. सी # पूरी तरह से स्मृति
- 13. युगल में पूर्णांक का प्रतिनिधित्व
- 14. पायथन में आंतरिक रूप से यूनिकोड का प्रतिनिधित्व कैसे किया जाता है?
- 15. स्पैस पूर्णांक सेट का प्रतिनिधित्व?
- 16. जावा में आंतरिक रूप से एक स्ट्रिंग का प्रतिनिधित्व कैसे किया जाता है?
- 17. Guid.ToByteArray() बाइट्स को जिस तरह से करता है उसे आदेश देता है?
- 18. निगरानी करते समय एक रेडियो बटन अनचेक किया जाता है
- 19. सी # पी/इनवॉक में Win32 प्रकारों का प्रतिनिधित्व कैसे किया जाता है?
- 20. डबल क्या करता है [,] प्रतिनिधित्व करता है?
- 21. सी ++ कोड सी ++/सीएलआई से कॉल किया जाता है जब marshalling प्रदर्शन किया जाता है?
- 22. पावरहेल में $$, $ ?, $^का प्रतिनिधित्व क्या करता है?
- 23. सी ++ पूर्णांक विभाजन सीमा और नकारात्मक मानों के लिए कैसे काम करता है?
- 24. जावा संग्रह फ्रेमवर्क में आंतरिक रूप से ArrayList का प्रतिनिधित्व कैसे किया जाता है।
- 25. स्मृति में जहां शून्य प्रकारों को संग्रहीत किया जाता है?
- 26. आर में, नकारात्मक सूचकांक क्या करता है?
- 27. पूर्णांक से अधिक पूर्णांक का प्रतिनिधित्व कैसे करें
- 28. अनचेक- सी #
- 29. पाइथन का subprocess.call इस तरह कार्यान्वित क्यों किया जाता है?
- 30. ptr_vector स्मृति का प्रबंधन कैसे करता है?
उच्च-आदेश बिट "साइन" नहीं है, जो "साइन + परिमाण" प्रतिनिधित्व होगा। दो के पूरक में, उच्च-आदेश बिट में ऋणात्मक स्थान मान होता है (अगले बिट के बराबर 2 गुना मूल्य, इसलिए यह 2 की शक्ति है) –