Javaの演算記号は、デフォルトはintで形成している、二重のデフォルトは、二重です
整数
ケースを見て:
コンパイルすることができません:営業デフォルトのint型、intとして結果を受け入れ、コンパイラはこの場所を通過することができないので、それはキャストする必要があります
ケースを見て:
ルックダブル:
これは、一見可能です
結果を確認することも可能です。
精度の損失。ルック
結果:
例さまざまなを見てください:
結果を見てください:
ケースを見て:
結果を参照してください。
あなたはので、非常に多くの問題があるでしょう何をしますか
データの結果では、例えば0.3として、例えば、バイナリに変換されたときは、バイナリ変換に変換しました
> 1.2 * 2- 0.3> 0.6> 0.6 * 2バイナリ1
小数0.2後も継続しました
0.2 * 2「0.4> 0.8> 1.6>バイナリ1
それから
* 2 0.6「1.2バイナリ1、次いで
* 2 0.2「0.4」0.8「1.6サイクルは、最終的に精度が失われ、続けて、
型dicmal動作精度を使用する必要があるので、したがって、もし、そのようなプロジェクトは、持っています。精度の損失を回避するために、
| ^&オペレーショナル分析:
ケースを見て:
結果を見てください:
これが理由です。
分析
第一、第二の動作と、第であるか、または意志予算OR演算であります
3は、バイナリ0000 0011に変換されます。
図1は、バイナリ0000 0001に変換しました
または、限り1は、その後、1 1であるように、1つは、右がある限り、この操作を実行するために正しいと
1だから| 3は、その結果が3 0000 0011の結果です
限り二つに限り操作、正しい次いで、適切であるように、さらに二つの同一1,0
結果の結果であることを1&3 0000 0001そう
または、唯一異なる2は、他の0~1限り二つの異なるので、計算時間としてのみ正確であるだろう
結果は2であるので、1 0000 0010 ^ 3結果
ビットコンピューティング
ケースを見て:
一つは、1つの右を左に
バイナリ0000 0001 0000 0000 3の右側に1結果は0そうであるように
1000 0000はそれを左に8
ケースを見て:
図9は、バイナリ00001001
左移移动 0100 1000 结果为2e6+2e3=64+8=72 计算规则是这样的,首先最后一个为2的0次方,那么第七位就为2的6次方,第四位就为2的3方法
右移 0000 0001 所以结果为1