2009-10-27 16 views
5

क्या निम्नलिखित जावास्क्रिप्ट बयान a लिए क्या करता है?जावास्क्रिप्ट में >>> = ऑपरेटर क्या है?

a >>>= b; 
+4

वास्तव में, आप उस जानकारी को खोजने के लिए गूगल का उपयोग नहीं कर सकता है? –

+3

क्या आपने Googling ">>> =" की कोशिश की है? – Tinister

+19

इस साइट के लक्ष्य का हिस्सा अंतिम संदर्भ होना है; मुझे नहीं लगता कि सरल प्रश्न अनुचित हैं। और Google एक प्रश्न में ">>>" अनदेखा कर देगा; आपको "ऑपरेटर" या "बिटवाई ऑपरेटर" पर खोजना होगा। –

उत्तर

12

यह इस रूप में एक ही बात करता है:

a = a >>> b; 

कि a छोड़कर केवल एक बार मूल्यांकन किया जाता है (जो नमूदार फर्क अगर इसके मूल्यांकन कोई साइड इफेक्ट शामिल है)।

और >>>unsigned (logical) right shift है।

+0

धन्यवाद! यह कुछ पागल जटिल एन्कोडिंग/डिकोडिंग कोड है जिसे मैं यहां देख रहा हूं। –

+1

'ए 'केवल' ए = ए >>> बी' के लिए" एक बार मूल्यांकन किया गया "है। ऐसा नहीं है कि दूसरी बार ऐसा देखा गया है। दोनों अभिव्यक्ति अभिव्यक्ति के वापसी मूल्य को वापस करती हैं, न कि 'ए' (जो मान पर सेट की गई थी)। –

+1

@ एलीया: धारणा यह है कि 'ए' एक मनमानी अभिव्यक्ति के लिए प्लेसहोल्डर है, न केवल पहचानकर्ता। –

3

यह एक बिटवाइज़ ऑपरेटर बुलाया सही पारी शून्य को भरने के लिए है। यह a के बाइनरी प्रतिनिधित्व को b स्थानों पर दाएं स्थानांतरित करेगा, और रिक्त आइटम को शून्य के साथ प्रतिस्थापित करेगा। फिर परिणाम a को सौंपा जाएगा।

5

मैं सही ख में मूल्य द्वारा निर्दिष्ट बिट्स की संख्या में मूल्य बदलाव, हस्ताक्षर को बनाए रखने के बिना।

यह >> = ऑपरेटर कि अधिकार एक मूल्य के बदलाव की तरह है, केवल यह है कि एक नंबर के हस्ताक्षर नहीं बदलता है।

उदाहरण:

var a = -1; 

// a now contains -1, or 11111111 11111111 11111111 11111111 binary 

var b = 1; 
a >>>= b; 

// a now contains 2147483647, or 01111111 11111111 11111111 11111111 binary. 
+0

उस उदाहरण को प्रदान करने के लिए धन्यवाद! –

+0

पवित्र बकवास, यह कुछ जटिल सामान है! o_0 – KyleFarris

0

Crockford points out कि जब जावास्क्रिप्ट >>> तरह ऑपरेटरों बिटवाइज़ गया है, इसके मूल डबल परिशुद्धता चल बिन्दु संख्या पर उन्हें प्रयोग आगे पीछे पूर्णांक के लिए आंतरिक रूप से परिवर्तित करने निकलता है। वे देशी पूर्णांक डेटा प्रकारों के साथ अन्य भाषाओं में उतना कुशल नहीं होंगे।

संबंधित मुद्दे