運転中のjava、+ - * /%| ^&>>

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

 

 

 

おすすめ

転載: www.cnblogs.com/cxyxiaobao/p/11966311.html