क्या कोई मदद कर सकता है n&-n
का मतलब है ?? और इसका महत्व क्या है।सकारात्मक और नकारात्मक संख्या के bitwise और (&) का अर्थ?
उत्तर
मेरा मानना है कि यह पता लगाने के लिए एक चाल है कि एन 2 की शक्ति है या नहीं (एन == (एन -n)) आईएफएफ एन 2 (1,2,4,8) की शक्ति है।
की तुलना में अधिक सिस्टमों में पोर्टेबल है, ठीक है कि यह पूरी तरह से काम नहीं करता है क्योंकि यह शून्य के लिए सच होगा, जिसे आम तौर पर दो की शक्ति नहीं माना जाता है। और चाल उस से अधिक उपयोगी है - अन्य उत्तरों देखें। – JasonD
'(एनएंड (एन -1)) == 0' अधिक सरल होता। –
अधिकतर लोग वास्तव में हर प्रणाली की परवाह करते हैं, यह आपको 2 की उच्चतम शक्ति देगा जो एन समान रूप से विभाजित है।
लेकिन सावधान रहें कि यह कार्यान्वयन परिभाषित व्यवहार पर निर्भर है, इसलिए तकनीकी पोर्टेबल नहीं है। – tletnes
@tletnes पोर्टेबिलिटी एक सापेक्ष शब्द है। यह पोर्टेबल नहीं है जब तक सी ++ मानक का संबंध है, सच है। लेकिन यह संभवतः एक अनुरूप, या लगभग अनुरूप अनुरूप सी ++ कंपाइलर –
यह थोड़ा सा और संख्या का है। नकारात्मक संख्या two's complement के रूप में दर्शायी जाती है।
तो उदाहरण के लिए, बिटवाइज़ के लिए और के 7 & (-7) है x00000111 & x11111001 = x00000001 = 1
यह एक पुरानी चाल है कि यह में एक भी बिट, नीचे बिट है कि स्थापित किया गया था के साथ एक संख्या देता है n
में। कम से कम दो पूरक गणित में, जो इन दिनों केवल सार्वभौमिक है।
कारण यह काम करता है: संख्या का नकारात्मक संख्या संख्या को परिवर्तित करके उत्पादित किया जाता है, फिर 1 जोड़ना (यह दो पूरक के परिभाषा है)। जब आप 1 जोड़ते हैं, तो सेट के नीचे से शुरू होने वाली प्रत्येक बिट अगले उच्च बिट में बहती है; एक बार जब आप शून्य बिट तक पहुंच जाते हैं तो यह बंद हो जाता है। उन अतिप्रवाह बिट्स सभी शून्य होंगे, और पिछले एक से ऊपर की बिट्स एक-दूसरे के विपरीत होंगी, इसलिए केवल थोड़ी सी बायीं तरफ है जो कैस्केड को रोकती है - वह जो 1 के रूप में शुरू हुई थी और 0
में उलटा गया थापीएस आप किसी के पूरक गणित भर में चलाने के बारे में चिंतित हैं, तो यहाँ एक संस्करण है कि दोनों के साथ काम करता है:
n & (~n + 1)
हां, और यह आसान है अगर उदा। एक एन में सेट सभी बिट्स पर जल्दी से फिर से शुरू करना चाहता है; 'के लिए (; जे = एन &(-n); एन^= जे)' –
रूप @aestrivex उल्लेख किया गया है, यह मैं इस
for (int y = x; y > 0; y -= y & -y)
का सामना करना पड़ा 1.Even लेखन का एक तरीका है
और यह सिर्फ y का मतलब = y -1 क्योंकि
x00000111 (-7) है & x11111001 = x00000001 = 1
मैं 0,123,457 करने के लिए एक आत्म व्याख्यात्मक उदाहरण जोड़ना होगाका अद्भुत प्रदर्शन।
010010000 | +144 ~
----------|-------
101101111 | -145 +
1 |
----------|-------
101110000 | -144
101110000 | -144 &
010010000 | +144
----------|-------
000010000 | 16`
क्योंकि x & -x = {0, 1, 2, 1, 4, 1, 2, 1, 8, 1, 2, 1, 4, 1, 2, 1, 16, 1, 2, 1, 4, 1, 2, 1, 8, 1, 2, 1, 4, 1, 2, 1, 32}
32. 0 से x
के लिए यह उछल करने के लिए कुछ अनुप्रयोगों के लिए दृश्यों के लिए प्रयोग किया जाता है। आवेदन संचित रिकॉर्ड स्टोर करने के लिए हो सकता है।
for(;x < N;x += x&-x) {
// do something here
++tr[x];
}
पाश बहुत तेजी से पार करता है क्योंकि यह कूदने के लिए दो की अगली सत्ता के लिए लग रहा है।
- 1. यादृच्छिक और नकारात्मक संख्या
- 2. सकारात्मक संख्या को नकारात्मक और इसके विपरीत कैसे बदलें?
- 3. जावास्क्रिप्ट यादृच्छिक सकारात्मक या नकारात्मक संख्या
- 4. जावास्क्रिप्ट - सकारात्मक शून्य और नकारात्मक शून्य
- 5. संवाद सकारात्मक और नकारात्मक बटन नहीं दिखाता
- 6. रेगेक्स - सकारात्मक और नकारात्मक दिखने वाला
- 7. स्वरूप TimeSpan: सकारात्मक और नकारात्मक timespans
- 8. सकारात्मक या नकारात्मक पूर्णांक
- 9. रूबी: नकारात्मक संख्या को सकारात्मक संख्या में बदलें?
- 10. का अर्थ (संख्या) और (-नंबर)
- 11. कंपाइलर और नकारात्मक संख्या प्रतिनिधित्व
- 12. नकारात्मक छवि को सकारात्मक
- 13. रुपेक: सकारात्मक और नकारात्मक मामलों के लिए डीआरवाई साझा उदाहरण
- 14. सकारात्मक/ग्रेप और पर्ल के साथ नकारात्मक अग्रदर्शी
- 15. एंड्रॉइड: सकारात्मक, नकारात्मक, और तटस्थ बटन के बीच अंतर
- 16. एक नकारात्मक संख्या को सकारात्मक में कैसे परिवर्तित करें?
- 17. मैं सकारात्मक संख्या को नकारात्मक में कैसे परिवर्तित करूं?
- 18. हायर प्रशिक्षण के दौरान सकारात्मक और नकारात्मक नमूने के लिए कितनी छवियों का उपयोग करना है?
- 19. सकारात्मक/नकारात्मक अक्षांश और देशांतर बनाम प्रमुख दिशाओं मूल्यों
- 20. Arduino और Bitwise, अप्रत्याशित परिणाम
- 21. सकारात्मक और नकारात्मक मानों पर कॉलम को विभाजित करना
- 22. ऑडियो वेवफ़ॉर्म में नकारात्मक मानों का अर्थ
- 23. सीएमडी सेट/ए, मॉड्यूलस, और नकारात्मक संख्या
- 24. पायथन में, एक नकारात्मक संख्या में भी एक नकारात्मक संख्या क्यों बढ़ती है नकारात्मक?
- 25. जटिल संख्या फ़ैक्टर और मोनड का अर्थ और उपयोग?
- 26. नकारात्मक संख्या
- 27. नकारात्मक और सकारात्मक मूल्यों की जांच करने के लिए डीकोड का उपयोग
- 28. क्यों अहस्ताक्षरित int नकारात्मक संख्या
- 29. नकारात्मक से सकारात्मक सीमा तक यादृच्छिक फ्लोट का निर्माण?
- 30. मैं AlertDialog में सकारात्मक और नकारात्मक बटन का क्रम कैसे सेट कर सकता हूं?
यह अनिर्धारित व्यवहार का कारण बन सकता है या परिणामस्वरूप 'n' के मूल्य और नकारात्मक संख्याओं का प्रतिनिधित्व (i। ई। 1 के पूरक बनाम 2 के पूरक) के आधार पर एक अनिर्दिष्ट और/या कार्यान्वयन परिभाषित मूल्य हो सकता है। मुझे यकीन है कि यह ऐसा कुछ है जिसे आप उपयोग/मुठभेड़ नहीं करना चाहते हैं। –
मैंने कभी असली 1 की पूरक मशीन नहीं देखी है। –
@ कथुलु, मेरे पास है लेकिन यह बहुत समय पहले था। सी ++ का आविष्कार अभी तक नहीं हुआ था। –