java - 将 long 转换为整数有什么意义?
问题描述
public class ConstantsAndCasting{
public static void main (String args[]){
long hugeNum = 23456013477456L;
int smallNum = (int)hugeNum;
System.out.println(hugeNum);
System.out.println(smallNum);
}
}
上面列出的代码的输出是:
23456013477456
1197074000
似乎在将 long 转换为整数值时,java 保留了从右侧工作左侧开始的 32 位。结果是一个比原始长值更接近 0 的值。从机器的角度来看,这完全有道理,但它的实际用途是什么?看起来你最好使用随机数生成器来生成 10 个随机字符。
提前致谢!
解决方案
有点不清楚如何回答这个问题...与任何类型转换一样,当您具有一种类型的值(在本例中为 long)但您需要不同类型的值(在本例中为 int )。
是的,有时它会给你带来不想要的结果,因为强制转换操作的限制(这又是基于数据类型的限制)。但是选择其中一个,并说“那么做这个操作有什么意义”,就像说“如果我有两个整数,a
并且b
,每个值都是 2,000,000,000 - 添加它们不会得到想要的结果.. . 那么添加整数有什么意义呢?”
推荐阅读
- python - 我有 8 年的日常数据。我想绘制一周中的每一天、一年中的每周和一年中的每个月的所有值。我怎么做?
- laravel - 需要刷新才能看到更改,使用 Vue
- android - 升级到 Gradle 5 和 Android 插件 3.3 后,我的构建失败并出现“元空间”
- python - PyQt5 GUI 无法从 Spyder 关闭
- ios - Wikipedia 在 iPad 上以不同方式呈现 WkWebView 和 Safari
- java - 为不同的 Jenkins 构建使用不同的 JDK,无需从站
- parameters - R 的 H2o GBM monotone_constraint 参数
- r - WIn R,当我应用 complete.cases 并尝试创建一个新矩阵时,为什么范围会变成“Inf”?
- zsh - 带有 oh-my-zsh 的 zsh 提示符中的特殊字符
- ios - 当输入语言为 RTL/阿拉伯语时,如何防止 UITextfield 改变对齐方式?