खोज…
परिचय
~ ऑपरेटर अभिव्यक्ति के मूल्यों के द्विआधारी प्रतिनिधित्व को देखता है और उस पर एक बिटवाइज़ निगेटिव ऑपरेशन करता है।
कोई भी अंक जो कि अभिव्यक्ति में 1 है, परिणाम में 0 हो जाता है। कोई भी अंक जो अभिव्यक्ति में 0 है, परिणाम में 1 बन जाता है।
~ पूर्णांक
निम्न उदाहरण पूर्णांक संख्याओं पर बिटवाइज़ नॉट (~) ऑपरेटर के उपयोग को दिखाता है।
let number = 3;
let complement = ~number;
complement
संख्या का परिणाम -4 के बराबर है;
अभिव्यक्ति | बाइनरी वैल्यू | दशमलव मान |
---|---|---|
3 | 00000000 00000000 00000000 00000011 | 3 |
~ 3 | 11111111 11111111 11111111 11111100 | -4 |
इसे सरल बनाने के लिए, हम इसे फ़ंक्शन f(n) = -(n+1)
रूप में सोच सकते हैं।
let a = ~-2; // a is now 1
let b = ~-1; // b is now 0
let c = ~0; // c is now -1
let d = ~1; // d is now -2
let e = ~2; // e is now -3
~~ संचालक
डबल टिल्ड ~~
दो बार बिटवाइज़ NOT ऑपरेशन करेगा।
निम्नलिखित उदाहरण दशमलव संख्या पर बिटवाइज़ नॉट (~~) ऑपरेटर के उपयोग को दर्शाता है।
उदाहरण को सरल रखने के लिए, दशमलव संख्या 3.5
का उपयोग किया जाएगा, इसका कारण द्विआधारी प्रारूप में सरल प्रतिनिधित्व है।
let number = 3.5;
let complement = ~number;
complement
संख्या का परिणाम -4 के बराबर है;
अभिव्यक्ति | बाइनरी वैल्यू | दशमलव मान |
---|---|---|
3 | 00000000 00000000 00000000 00000011 | 3 |
~~ 3 | 00000000 00000000 00000000 00000011 | 3 |
3.5 | 00000000 00000011.1 | 3.5 |
~~ 3.5 | 00000000 00000011 | 3 |
इसे सरल बनाने के लिए, हम इसे f2(n) = -(-(n+1) + 1)
और g2(n) = -(-(integer(n)+1) + 1)
।
f2 (n) पूर्णांक संख्या को छोड़ देगा जैसा कि यह है।
let a = ~~-2; // a is now -2
let b = ~~-1; // b is now -1
let c = ~~0; // c is now 0
let d = ~~1; // d is now 1
let e = ~~2; // e is now 2
g2 (n) अनिवार्य रूप से सकारात्मक संख्याओं को नीचे और नकारात्मक संख्याओं को गोल करेगा।
let a = ~~-2.5; // a is now -2
let b = ~~-1.5; // b is now -1
let c = ~~0.5; // c is now 0
let d = ~~1.5; // d is now 1
let e = ~~2.5; // e is now 2
संख्याओं के लिए गैर-संख्यात्मक मान परिवर्तित करना
~~
गैर-संख्यात्मक मूल्यों पर इस्तेमाल किया जा सकता है। एक संख्यात्मक अभिव्यक्ति को पहले एक संख्या में परिवर्तित किया जाएगा और फिर उस पर बिटवाइज़ NOT ऑपरेशन किया जाएगा।
यदि अभिव्यक्ति को संख्यात्मक मान में नहीं बदला जा सकता है, तो यह 0
परिवर्तित हो जाएगा।
true
और false
बूल मान अपवाद हैं, जहाँ true
को संख्यात्मक मान 1
और false
को 0
रूप में प्रस्तुत किया जाता है
let a = ~~"-2"; // a is now -2
let b = ~~"1"; // b is now -1
let c = ~~"0"; // c is now 0
let d = ~~"true"; // d is now 0
let e = ~~"false"; // e is now 0
let f = ~~true; // f is now 1
let g = ~~false; // g is now 0
let h = ~~""; // h is now 0
shorthands
हम कुछ रोजमर्रा के परिदृश्य में एक आशुलिपि के रूप में ~
उपयोग कर सकते हैं।
हम जानते हैं कि ~
-1
को 0
परिवर्तित करता है, इसलिए हम इसे सरणी पर indexOf
साथ उपयोग कर सकते हैं।
के सूचकांक
let items = ['foo', 'bar', 'baz'];
let el = 'a';
if (items.indexOf('a') !== -1) {}
or
if (items.indexOf('a') >= 0) {}
के रूप में फिर से लिखा जा सकता है
if (~items.indexOf('a')) {}
~ दशमांश
निम्नलिखित उदाहरण दशमलव संख्या पर बिटवाइज़ नॉट (~) ऑपरेटर के उपयोग को दर्शाता है।
उदाहरण को सरल रखने के लिए, दशमलव संख्या 3.5
का उपयोग किया जाएगा, इसका कारण द्विआधारी प्रारूप में सरल प्रतिनिधित्व है।
let number = 3.5;
let complement = ~number;
complement
संख्या का परिणाम -4 के बराबर है;
अभिव्यक्ति | बाइनरी वैल्यू | दशमलव मान |
---|---|---|
3.5 | 00000000 00000010.1 | 3.5 |
~ 3.5 | 11111111 11111100 | -4 |
इसे सरल बनाने के लिए, हम इसे फ़ंक्शन f(n) = -(integer(n)+1)
रूप में सोच सकते हैं।
let a = ~-2.5; // a is now 1
let b = ~-1.5; // b is now 0
let c = ~0.5; // c is now -1
let d = ~1.5; // c is now -2
let e = ~2.5; // c is now -3