2

私は今日、単純なJavaクラスで以下の行を書くことによってそれを観察していました

System.out.println(010|4);

'12'の出力を提供します。その背後にあるロジックは何ですか、アドバイスしてください。

4

4 に答える 4

2

|はビット単位の包括的 OR演算子であり、010は の 8 進数で8あり、これは10002 進数で4あり100、2進数です。10000100110012

于 2012-05-05T06:26:49.803 に答える
2

数値の前に 0 を付けると、基数 8 と見なされ、010 = 0*(8^0) + 1*(8^1) = 8 を意味します。

| | はビットごとの OR 演算です

010|4 は 8|4 と同じです

1000
OR
0100
=
1100
= 12
于 2012-05-05T06:28:32.373 に答える
1
010|4

ここで注目すべき2つのこと-

  1. 010-整数は0から始まります。8進数です。ex 011 -> 9 (0 8^1 8^0 =9)
  2. | -ビット単位または| bいずれかのビットが1の場合は1を示します。ex 010 | 010 -> 8 (010)

この場合

 010 | 4 -> 010 | 04 -> 014 
 014 which is 12 in base of 10
于 2012-05-05T06:43:42.730 に答える
1

|ビットごとの包括的 OR演算子で、0108 進数では 8 なので、8 | 4 = 12。

于 2012-05-05T06:23:26.233 に答える