Javaに比較的新しいです。Javaで長いプリミティブを印刷するには
long a = 3232235521L;
long b = 192 * 16777216 + 168 * 65536 + 0 * 256 + 1;
System.out.println("a="+a);
System.out.println("b="+b);
出力:ここでは、コードで長い2^63-1のためのJavaドキュメントの最大値によると
a=3232235521
b=-1062731775
、それがある:9223372036854775807だからBのために、オーバーフローが存在しません、なぜbは3232235521ではないのですか?
最大値は、それが収まらないはずY 2^63-1'あります? –
式の右辺には整数しかないので、個々の演算の結果は整数として設定されます。いずれの結果も '' int'''に収まらない場合、オーバーフローします。 – kkaosninja