Java - 从 Int 到 Short 的显式转换

标签 java variables casting int short

有人可以解释为什么会出现以下声明:

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

给我:

-7936

知道 Java 中 short 的最大值是 32767 对吗?

最佳答案

你值一亿,我得到-7936。 1亿改100万只能得到16960。

原因是 short 的值限制在 -32768 到 +32767 之间,Java 在转换为 short(narrowing primitive conversion, JLS 5.1.3)时只保留最低有效的 16 位.实际上这个操作:100 万模 2^16(short 中的 16 位)是 16960。

关于Java - 从 Int 到 Short 的显式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860817/

相关文章:

java - 同步工厂删除 sftp :inbound-channel-adapter 的文件夹

PHP 永久变量,但可变?

javascript - 我只是想确认...声明(不分配)已经声明的变量绝对没有任何作用,对吗?

C++ 强制转换语法样式

java - 使用 ObjectInputStream 等待来自套接字的数据

Java JFuzzyLogic sourceforge 运行演示

java - 更改 ListView 背景 - 奇怪的行为

java - 如何在 JSch SFTP 上获得声誉?

.net - 标识符或变量 : Which is which?

python - 使用 pandas 防止尾随零 "to_csv"