2013-05-08 10 views
7

Java programlarında yöntem çağrılarında kullanılan boru karakterini gördüm. ÖrneğinBoru karakteri bir Java yöntemi çağrısında ne yapar?

: Bu çalıştırdığınızda

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); 
    } 
} 

, ben sadece 7 olsun.

Birisi yöntemde borunun ne yaptığını ve nasıl düzgün kullanılacağını açıklayabilir mi?

+0

bu bağlantıyı kontrol edin http://stackoverflow.com/questions/7226538/how-to-use-pipe-symbol-in-java – Srinivas

cevap

13

3 | 2 numaralı bağlantıda, sizin durumunuza 3 döndüren bitwise inclusive OR işleci (ikilide 11 | 10 == 11).

+5

Hayır, 1 bit olarak ayarlanmış tüm bitleri koruyarak, bit bir VEYA gerçekleştirir. işlenenlerden biri. Örneğin, '2 | 1' => '10 | 01' => '11' =>' 3' - başka bir: '6 | 5' => 110 | 101' => '111' => 7' vb ... – assylias

+1

Bunun faydalı olacağını bir şekilde açıklayabilir misiniz? – CodyBugstein

+1

Örneğin, birkaç seçeneği geçmek için: 'int option1 = 1, option2 = 2, option3 = 4, option4 = 8' (böylelikle ikili: 1, 10, 100, 1000). Daha sonra aşağıdaki gibi bir şey yapabilirsiniz: '' method (option1 | option2 | option3) 'tüm bu seçeneklerin kullanılmasını istediğinizi belirtin. Yöntemde, seçenek1'in seçilip seçilmediğini görmek için argüman & 1'i yapabilirsiniz.Artık her gün kullanacağınız bir şey değil, bazı özel durumlarda faydalı olabilir. – assylias

7

Bu bitsel bir OR'dir.

numaralarının bit düzeyinde gösterimi şu şekildedir:

 
|2^2|2^1|2^0| 
| 4 | 2 | 1 | 
  • 3 bit cinsinden gösterimidir:
 
|2^2|2^1|2^0| 
| 4 | 2 | 1 | 
| - | X | X | => 3 
  • 2 bit cinsinden gösterimidir:
 
|2^2|2^1|2^0| 
| 4 | 2 | 1 | 
| - | X | - | => 2 

Bit değeri OR, en az bir bitin "meşgul" olması gerektiği için 3 değerini döndürecektir. birinci ve ikinci bit işgal yana (3 | 2) Son olarak 3

, ilave döndürür 4 + 3 = 7. | operatör bir bit TD işlenen gerçekleştirir

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 

| kullanılması:

İşte

desen var Gerçek bir ifadesi olmuştur kez diğer koşulları denetlemeye devam etmek ihtiyacını zorunlu olmadığını || hariç

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

(: Bu yaygın if tablolarda kullanılan short-circuit OR (||) benzer olduğunu

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

Not bulundu.)