or演算子の動作
まずはソースコードから大まかな雰囲気から
class java_study_10{
public static void main(String args[]){
int i_val ;
int match ;
i_val = 21 ;
match = 3 ;if((i_val | match) == 1){
System.out.print("偶数") ;
}else{
System.out.println("奇数") ;
System.out.println(i_val | match) ;
}
}
}
次に表を見てもらいたい
16 | 8 | 4 | 2 | 1 | |
---|---|---|---|---|---|
20 | 1 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 | 1 |
差 | 1 | 0 | 1 | 0 | 1 |
これは20と3の2進数の結果と処理結果だ、肝心なor演算子の話を忘れてしまった。
or演算子とは、同じ位置のビットを比較して
どちらかが「1」だったら1にする
と言うものだ、さっきの表を見てほしい。
見てもらうのは「差」という項目だ、「20」か「3」のどっちかが「1」だと「差」は「1」になっている。
例えば16のところを見てもらおう、20だと1になっている。
3だと0になっている、差はどうなっている?
「1」になっているよぉ。
そして、もうひとつ
16 | 8 | 4 | 2 | 1 | |
---|---|---|---|---|---|
差 | 1 | 0 | 1 | 0 | 1 |
これはさっきの差の部分だけを抜き出したものだよぉ、1になってる上の数字だけ計算してごらん。
21になるだろぉ、これがorではじき出された結果なんだよぉ。
何に使うか正直不明だw
以上