2013-05-08 2 views
7

मैंने जावा प्रोग्राम में विधि कॉल में उपयोग किए गए पाइप चरित्र को देखा है।जावा विधि कॉल में पाइप वर्ण क्या करता है?

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

public class Testing1 { 

    public int print(int i1, int i2){ 
     return i1 + i2; 
    } 
    public static void main(String[] args){ 
     Testing1 t1 = new Testing1(); 
     int t3 = t1.print(4, 3 | 2); 
     System.out.println(t3); 
    } 
} 

जब मैं इस चलाने के लिए, मैं बस 7 मिलता है।

क्या कोई यह बता सकता है कि विधि कॉल में पाइप क्या करता है और इसका उपयोग कैसे किया जाए?

+0

इस लिंक को जांचें http://stackoverflow.com/questions/7226538/how-to-use-pipe-symbol-in-java – Srinivas

उत्तर

13

3 | 2 में पाइप bitwise inclusive OR ऑपरेटर है, जो आपके मामले में 3 लौटाता है (11 | 10 == 11 बाइनरी में)।

+5

नहीं, यह थोड़ा सा प्रदर्शन करता है या, सभी बिट्स को 1 में सेट करके बनाए रखकर ऑपरेटरों में से कोई भी। उदाहरण के लिए, '2 | 1' => '10 | 01' => '11' =>' 3' - दूसरा एक: '6 | 5' => '110 | 101' => '111' =>' 7' आदि ... – assylias

+1

क्या आप एक तरह से समझा सकते हैं कि यह उपयोगी होगा? – CodyBugstein

+1

उदाहरण के लिए कई विकल्पों को पारित करने के लिए: 'int option1 = 1, विकल्प 2 = 2, विकल्प 3 = 4, विकल्प 4 = 8' (इसलिए बाइनरी में: 1, 10, 100, 1000)। फिर आप कुछ ऐसा कर सकते हैं: 'विधि (विकल्प 1 | विकल्प 2 | विकल्प 3)' कहने के लिए कि आप उन सभी विकल्पों का उपयोग करना चाहते हैं। विधि में, आप विकल्प 1 का चयन करने के लिए 'तर्क और 1' कर सकते हैं।अब यह ऐसा कुछ नहीं है जिसे आप रोज इस्तेमाल करते हैं लेकिन यह कुछ विशिष्ट परिस्थितियों में उपयोगी हो सकता है। – assylias

7

यह थोड़ा सा है या।

संख्या के बिटवाइज़ प्रतिनिधित्व इस तरह है:

 
|2^2|2^1|2^0| 
| 4 | 2 | 1 | 
  • 3 की बिटवाइज़ प्रतिनिधित्व है:
 
|2^2|2^1|2^0| 
| 4 | 2 | 1 | 
| - | X | X | => 3 
  • 2 की बिटवाइज़ प्रतिनिधित्व है:
 
|2^2|2^1|2^0| 
| 4 | 2 | 1 | 
| - | X | - | => 2 

बिटवाई या 3 वापस आ जाएगा क्योंकि कम से कम एक बिट "कब्जा" होना चाहिए। के बाद से पहली और दूसरी बिट पर कब्जा कर लिया जाता है (3 | 2) वापस आ जाएगी 3.

अंत में, इसके अलावा 4 + 3 = 7.

1

| ऑपरेटर एक बिटवाइज़ या ऑपरेंड पर करता है:

3 | 2 ---> 0011 (3 in binary) 
      OR 0010 (2 in binary) 
      --------- 
       0011 (3 in binary) 

0 OR 0: 0 
0 OR 1: 1 
1 OR 0: 1 
1 OR 1: 1 

| का उपयोग करना::

यहाँ पैटर्न है

if(someCondition | anotherCondition) 
{ 
    /* this will execute as long as at least one 
     condition is true */ 
} 

ध्यान दें कि यह short-circuit या (||) सामान्यतः if बयान में इस्तेमाल के समान है: कि || छोड़कर

if(someCondition || anotherCondition) 
{ 
    /* this will also execute as long as at least one 
     condition is true */ 
} 

(अन्य शर्तों की जाँच जारी रखने के लिए की जरूरत लागू नहीं करता है एक बार एक सच्ची अभिव्यक्ति कर दिया गया है मिला।)

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