2010-02-24 16 views
14

Android guide to Notifications पढ़ते समय, मैं इस पार ठोकर खाई:जावा में | = ऑपरेटर क्या करता है?

कंपन जोड़ना

आप डिफ़ॉल्ट कंपन पैटर्न के साथ या एक कंपन पैटर्न आपके आवेदन द्वारा परिभाषित के साथ उपयोगकर्ता को सचेत कर सकते हैं।

डिफ़ॉल्ट पैटर्न का उपयोग करने के लिए, "DEFAULT_VIBRATE" जोड़ने चूक क्षेत्र के लिए:

notification.defaults |= Notification.DEFAULT_VIBRATE; 

क्या करता है स्पष्ट है: यह अधिसूचना वस्तु के डिफ़ॉल्ट झंडे को DEFAULT_VIBRATE झंडा कहते हैं। लेकिन |= ऑपरेटर जावा में क्या करता है? यह "OR" जैसा दिखता है, लेकिन यह कैसे काम करता है?

क्या आप संख्याओं का उपयोग करके एक उदाहरण प्रदान कर सकते हैं?

धन्यवाद

उत्तर

27

|= एक बिटवाइज़ या असाइनमेंट ऑपरेटर है। यह एलएचएस का वर्तमान मूल्य लेता है, बिटवाई-आरएचएस करता है, और एलएचएस को मान वापस आवंटित करता है (इसी तरह += के साथ इसी तरह के साथ)।

उदाहरण के लिए:

foo = 32; // 32 =  0b00100000 
bar = 9; // 9 =  0b00001001 
baz = 10; // 10 =  0b00001010 
foo |= bar; // 32 | 9 = 0b00101001 = 41 
      // now foo = 41 
foo |= baz; // 41 | 10 = 0b00101011 = 43 
      // now foo = 43 
+0

आपको बहुत बहुत धन्यवाद, यह स्पष्ट और सरल है – dgraziotin

17

a |= xa = a | x है, और |

जब भी इस तरह के सवाल उठते हैं, the official tutorial on operators जाँच "बिटवाइज़ समावेशी या" है।

+=-=*=/=%=&=^=|=<<=>>=>>>=

कहाँ a OP= xa = a OP x

और के बारे में bitwise operations लिए अनुवाद किया है::

प्रत्येक ऑपरेटर एक काम रूप है

0101 (decimal 5) 
OR 0011 (decimal 3) 
= 0111 (decimal 7) 

बिटवाइज़ या स्थितियों में, जहां बिट्स का एक सेट झंडे के रूप में उपयोग किया जाता है में इस्तेमाल किया जा सकता है; एक बाइनरी अंक में बिट्स प्रत्येक एक अलग बूलियन चर का प्रतिनिधित्व कर सकते हैं। बिटकवाइज को लागू करना या कुछ पदों में 1 युक्त बिट पैटर्न के साथ संख्या में ऑपरेशन के परिणामस्वरूप उन बिट्स सेट के साथ एक नया अंक होगा। उदाहरण के लिए:

+0

है यही कारण है कि मैं क्या किया है, लेकिन मैं नहीं मिल सकता है | = फार्म, जो मेरे लिए अजीब लग – dgraziotin

+1

@bodom_lx अच्छी तरह से, यह वहाँ सही है पेज पर मैंने लिंक किया। – Bozho

+0

यह नहीं है .. bitwise-समावेशी या ऑपरेटर "|" है, जो मुझे पता है। जो मुझे नहीं पता था वह "| =" फ़ॉर्म था। मैंने इसे आज अपने जीवन में पहली बार देखा और यह मेरे और मेरे कंप्यूटर विज्ञान वर्ग के साथी – dgraziotin

1

यह थोड़ा बुद्धिमान या ऑपरेटर है। यदि अधिसूचनाएं। डिफॉल्ट 0b00000001 बाइनरी रूप में है और अधिसूचना .DEFAULT_VIBRATE 0b11000000 है, तो परिणाम 0b11000001 होगा।

3

यह थोड़ा सा प्रदर्शन करने के लिए एक छोटा सा नोटेशन है और एक चरण में असाइनमेंट है।

x |= yx = x | y

इस के बराबर, कई ऑपरेटरों के साथ किया जा सकता है, उदाहरण के लिए है:

x += y 
x -= y 
x /= y 
x *= y 
etc. 

बिटवाइज़ OR का उपयोग करके संख्या का एक उदाहरण ..यदि ऑपरेशन में बिट सेट किया गया है तो थोड़ा परिणाम परिणाम में सेट हो जाएगा। तो, अगर:

x = 0001 and 
y = 1100 then 
-------- 
r = 1101 
1

इस मामले में, notification.defaults एक bit array है। |= का उपयोग करके, आप डिफ़ॉल्ट विकल्पों के सेट पर Notification.DEFAULT_VIBRATE जोड़ रहे हैं। Notification के अंदर, यह संभावना है कि इस विशेष मूल्य की उपस्थिति इतनी तरह के लिए जाँच की जाएगी:

notification.defaults & Notification.DEFAULT_VIBRATE != 0 // Present 
0

बिटवाइज़ OR ऑपरेटर

+0

यह _wisely_ bitwise_ नहीं है – Bozho

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