谜题3:Long Division 长整除
来源:互联网 发布:电信短信平台软件 编辑:程序博客网 时间:2024/06/06 03:17
public class LongDivision { public static void main(String[] args) { final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000; final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000; System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY); }}
看起来两个变量都是long类型,大小足够盛的下数值,没有理由溢出,应该输出1000。
结果却输出5,确实溢出了。
存在的问题:不是右边数值保存到long变量中溢出了,而是右边表达式在计算时已经溢出了,因为右边表达式中的数值类型都是int,因此都是int类型之间的计算,导致溢出。计算完毕之后,将溢出的结果赋值给左侧long变量,才发生拓宽原生类型转换(widening primitive conversion)。
解决方法:在等号右边的表达式的第一个值改写为long类型,这样可以强制表达式中的所有后续计算都用long运算来完成:
final long MICROS_PER_DAY = 24L * 60 * 60 * 1000 * 1000
阅读全文
0 0
- 谜题3:Long Division 长整除
- 谜题3:长整除
- java谜题3:长整除
- Puzzle 3: Long Division
- java解惑--谜题3:长整除
- Java Puzzlers 之Puzzle 3: Long Division
- 长整除
- 长整除
- 长整除
- 长整除
- Java Puzzlers笔记--Puzzle 3: Long Division 溢出问题
- 长整型 long long
- 3.长整除
- 【迷题三】长整除
- 长整除谜题
- java解惑--------长整除
- 长整除问题
- Java 长整除
- 文件下载之断点续传(客户端与服务端的实现)
- 【小工具】系统时间SYSTEMTIME 轻量实现
- CRM的dev(总结)--多思考,先实现,再优化!
- WebGIS学习(八)WebGIS中栅格图层的设计
- HDU-3436 Queue-jumpers(Splay树)
- 谜题3:Long Division 长整除
- 关于quartz调度器
- WebGIS学习(九)WebGIS中的矢量查询(针对AGS和GeoServer)
- 用sflow玩儿转 共享专线带宽占用情况
- 移动端学习笔记(一)
- quartz调度器表达式
- 使用HTTP响应头X-Frame-Options防止网页被Frame
- SSD6 Exercise 2: Data Lab(Manipulating Bits)
- lua文件操作