1. ホーム
  2. java

[解決済み] Java - IntからShortへの明示的な変換

2022-02-14 23:03:35

質問

どなたか、この次の文の理由を説明してください。

short value = (short) 100000000;
System.out.println(value);

与える。

-7936

Javaにおけるshortの最大値が32767であることを知っていること 正しいですか?

どのように解決するのですか?

1億の値で、-7936と出ました。 1億を100万にすると、16960になります。

その理由は short の値は-32768から+32767に制限されており、Javaでは short (a 狭義のプリミティブ変換、JLS 5.1.3 ). 実質的にこの操作で 100万mod 2^16 (16ビットを short )は16960です。