How does the bitwise complement (~) operator work? -


ऐसा क्यों है कि ~ 2 है -3?

याद रखें कि नकारात्मक संख्याएं सकारात्मक समकक्ष के दो पूरक के रूप में संग्रहित की गई हैं उदाहरण के तौर पर, दो के पूरक में -2 का प्रतिनिधित्व है: (8 बिट्स)

  1111 1110  

जिस तरह से आप इसे प्राप्त करते हैं वह एक संख्या का द्विआधारी प्रतिनिधित्व, इसके पूरक (सभी बिट्स को परिवर्तित करने) और एक जोड़ते हुए। दो 0000 0010 के रूप में शुरू होता है, और बीट्स को परिवर्तित करके हमें 1111 1101 मिलता है। पहला सा एक चिन्ह है, जिसका अर्थ नकारात्मक है।

तो आइये देखें कि हम कैसे ~ 2 = -3 प्राप्त करते हैं:

यहाँ दो दोबारा हैं:

  0000 0010  < / पूर्व> 

बस सभी बिट्स फ्लिप करें और हमें मिलते हैं:

  1111 1101  

अच्छा, क्या है -3 जो दो के पूरक की तरह दिखते हैं? सकारात्मक 3: 0000 0011 से प्रारंभ करें, सभी बिट्स को 1111 1100 पर फ्लिप करें, और एक को नकारात्मक मान (-3), 1111 1101 के रूप में जोड़ें।

अतः यदि आप 2 में बिट्स को पलटते हैं, तो आप दो के पूरक का प्रतिनिधित्व -3।

पूरक ऑपरेटर (~) बस FLIPS बिट्स ये बिट्स की व्याख्या करने के लिए मशीन पर निर्भर है।


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -