मुझे है। // 1 - 1 11111111 // ~ (1 - 1) = ~ 0 = -1 एक को जोड़कर उच्चतम बिट सेट के साथ संख्या को नकारात्मक माना जाता है। विकिपीडिया आलेख I अधिक जानकारी है। के लिए के रूप में कुल में, यह अभिव्यक्ति निम्न x & amp; (~ 0 & lt; & lt; n) के पीछे तर्क में संदेह है।
सबसे पहले मैं ~ 0 का अर्थ नहीं मिल सका। जब मैंने इसे जावा में करने की कोशिश की तो यह -1 दिखाया। हम बाइनरी में -1 का प्रतिनिधित्व कैसे कर सकते हैं और इसे सकारात्मक संख्याओं से अलग कर सकते हैं? -x = ~ (x - 1) । उदाहरण के लिए, 8bit में,
00000001 // 1 00000000 एक अन्य, समकक्ष तरीका, -x = ~ x + 1 11111111 शून्य पर लपेटता है - यह समझ में आता है कॉल करने के लिए "जैसे कि एक को जोड़कर इसका परिणाम शून्य" शून्य से होता है। x & amp; (~ 0 & lt; & lt; n) , ~ 0 "सभी लोगों" का प्रतिनिधित्व करने का एक तरीका है (जो भी -1 होता है, जो वास्तव में इस प्रयोग के लिए अप्रासंगिक है) । ज्यादातर n के लिए, "सब लोग" को n द्वारा बायीं ओर स्थानांतरित कर दिया गया है, जिसके बाद n शून्य हो। n बिट्स को x को साफ़ करती है। कम से कम, 0 & lt; = n & lt; = 31 के लिए एक & lt; & lt; N जावा में, जहां a एक int है, वह a & lt; & lt; (एन एंड ए 31) ।
No comments:
Post a Comment