उत्तर
~ ऑपरेटर थोड़ा उलटा है, इसलिए ~ 0 आपको सभी के साथ एक पूर्णांक मान देता है (बाइनरी में)।
यह बाइट 0000 .... 0000 की थोड़ी सी अस्वीकृति है। यह एक पूर्णांक का मान है जहां सभी बिट्स 1 पर सेट होते हैं।
एक हस्ताक्षरित स्थिति में यह अधिकतम संभव मूल्य होगा। एक हस्ताक्षरित स्थिति में यह -1 है।
~ पूरक ऑपरेटर है, जो ऑपरेंड के बिट्स को फ़्लिप करता है। चूंकि शून्य में कोई बिट सेट नहीं है, इसलिए पूरक में सभी बिट सेट होंगे, जो अधिकतम आकार का पूर्णांक भी है (हस्ताक्षरित मानते हुए)। हस्ताक्षरित संख्याओं के लिए, आपको इसके बजाय -1 प्राप्त करने जा रहे हैं, इसलिए इसे "अधिकतम" कहकर एक गलत नामक है।
बिटवाई पूरक।
http://msdn.microsoft.com/en-us/library/d2bd4x66.aspx
एक शाब्दिक 0 (ऊपर दिए गए कोड में) एक int है।
एक int 32 बिट बाइनरी मान है। मान 0 में सभी बिट्स 0
~ ऑपरेटर थोड़ा सा प्रशंसा है। यानी मैं सभी बिट्स को स्वैप करता हूं।
सभी बिट्स के रूप में 0 वे सब 1. में बदल रहे हैं थे तो हम सभी बिट्स 1.
सी # तेज का उपयोग करता है 2 तारीफ करने के लिए सेट के साथ एक 32 बिट मूल्य
है। encodes कौन सा -1 एक पूर्णांक में के रूप में सभी बिट्स जा रहा है 1
0000 0000 0000 0000 0000 0000 0000 0000 == 0
operator ~
1111 1111 1111 1111 1111 1111 1111 1111 == -1
तो =>~0 == -1
नकारात्मक वोट के बारे में Curios? –
~ बिटवाइज़ नहीं का मतलब है, यह देखते हुए पूर्णांक में सभी बिट्स उलट। एक हस्ताक्षरित int में यह आपको -1 देगा (क्योंकि int में सभी बिट्स 0 से 1 तक फ़्लिप किए जाएंगे) इस पर अधिक जानकारी के लिए दो पूरक देखें।
एक अहस्ताक्षरित int (uint) यह आप एक पूर्णांक के अधिकतम मूल्य देना होगा (के बाद से एक अहस्ताक्षरित int में सबसे महत्वपूर्ण बिट संकेत निर्धारित नहीं करता है।)
के रूप में विख्यात ~ में 0 0xFFFFFFFF पैदावार ।
हालांकि, मुझे संदेह है कि मूल प्रोग्रामर उलझन में है। int max = ~0 ;
निष्पादित करने के लिए मान -1 पर हस्ताक्षर पूर्णांक max
सेट करता है।
~
ऑपरेटर एकमात्र बिटवाई पूरक पूरक ऑपरेटर है जो बिटवाईक पूरक की गणना करता है। इसका मतलब है कि यह अपने तर्क में सभी बिट्स को उलट देता है (0s 1s और 1s बन जाता है 0)। इस प्रकार,
int max = ~0;
32-बिट मूल्य 0000 0000 0000 0000 0000 0000 0000 0000
1111 1111 1111 1111 1111 1111 1111 1111
में जिसके परिणामस्वरूप का निषेध करने के लिए max
स्थापित कर रही है जो। चूंकि हम इस परिणाम को Int32
में संग्रहीत कर रहे हैं, यह -1
जैसा ही है।
या नहीं, यह कहना
int max = ~0;
या
int max = -1;
संदर्भ पर निर्भर करता बेहतर है। यदि max
का बिंदु एक संख्या है जिसके सभी बिट 1
हैं तो मैं पूर्व का चयन करूंगा। यदि max
का बिंदु गैर-ऋणात्मक पूर्णांक की अधिकतम सूची की गणना करना है, तो मैं बाद वाले को चुनूंगा (ठीक है, मैं int max = Int32.MinValue;
और इससे भी अधिक पसंद करूंगा, मैं बस int max = list.Max();
पसंद करूंगा)।
जैसा कि अन्य ने कहा है, ~ थोड़ा सा नकारात्मक ऑपरेशन है। यह पूर्णांक मान के सभी बिट्स ले जाएगा और 0 और 1 (0 -> 1 और 1 -> 0) टॉगल करेगा।
~ 0 एक हस्ताक्षरित पूर्णांक या Int32 के लिए -1 के बराबर है।
आमतौर पर ~ 0 या -1 को "सभी समावेशी" मुखौटा (तारांकन) के रूप में उपयोग किया जाता है जब आप किसी प्रकार की परत-आधारित फ़िल्टरिंग प्रणाली को कार्यान्वित कर रहे हैं जहां आप "लेयरमास्क" तर्क का उपयोग करते हैं जो डिफ़ॉल्ट रूप से बराबर होता है - 1 का अर्थ है कि यह कुछ भी वापस करेगा (फ़िल्टर नहीं करता है)। फ़िल्टर वास्तव में एक एंड ऑपरेशन (ValueToFilter & परतमास्क) का उपयोग कर रहा है।
valueToFilter & -1 वैल्यूफिल्टर भी गैर-शून्य होने पर हमेशा शून्य नहीं होगा। अन्यथा शून्य।
- 1. CallLog.Calls.NEW? इसका क्या मतलब है?
- 2. इसका क्या अर्थ है? (int &)
- 3. int * pi = new int (0) में int (0) का अर्थ ;?
- 4. इसका क्या मतलब है जब संख्या यू
- 5. खाली जावास्क्रिप्ट समारोह? इसका क्या मतलब है?
- 6. एक्सएएमएल - इसका क्या मतलब है (टाइपिंग)?
- 7. * | * इसका मतलब सीएसएस में क्या है?
- 8. जावास्क्रिप्ट "टुपल" नोटेशन: इसका क्या मतलब है?
- 9. इसका मतलब गिटहब भंडार क्लोन क्या है?
- 10. int [] arr = {0}; int value = arr [arr [0] ++]; मान = 1?
- 11. मार्जिन क्या करें: 5 पीएक्स 0; और मार्जिन: 5 पीएक्स 0 0; क्या मतलब है?
- 12. प्रक्रिया क्या करती है। वास्तव में इसका मतलब है?
- 13. क्या "@" करता है ग # में इसका मतलब है
- 14. * (int *) 0 = 0 क्यों पहुंच उल्लंघन का कारण नहीं है?
- 15. इसका मतलब क्या है .. django कोड में "name__icontains" और "description__icontains",
- 16. हंक # 1 1 पर विफल। इसका क्या मतलब है?
- 17. "एक इंटरफेस के लिए कार्यक्रम"। इसका क्या मतलब है?
- 18. इसका मतलब क्या है कि वैश्विक नामस्थान प्रदूषित हो जाएगा?
- 19. इसका क्या मतलब है: "jQuery ('> ली', यह)"
- 20. पिज्जा, थ्रेडिंग, प्रतीक्षा, अधिसूचना। इसका क्या मतलब है?
- 21. सी 3 पी 0 अधिकतम कथन विन्यास?
- 22. इसका क्या अर्थ है? int i = (i = 20);
- 23. इसका क्या अर्थ है? int foo = foo + 4;
- 24. डॉटनेट - int * क्या है?
- 25. अपरिवर्तनीय मतलब क्या है?
- 26. क्या है = = मतलब?
- 27. निर्माता दिनांक (...) को बहिष्कृत किया गया है। इसका क्या मतलब है? (जावा)
- 28. प्रतीक्षा का अर्थ ((int *) 0)
- 29. /([^.]*)\.(.*)/ मतलब क्या है?
- 30. विमस्क्रिप्ट में = ~ मतलब क्या है?
इसे देखें 'क्यों -3 == ~ 2' (http://stackoverflow.com/questions/4471823/why-3-2-in-c) –