मुझे है। // 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