`

JAVA解惑之—长整除

阅读更多

我们先来看一个短小的程序:

public class LongDivison{

     public static void main(String[ ] args){

          final long millise_per_day  = 24*60*60*1000;

          final long micros_per_day = 24*60*60*1000*1000;

          System.out.println(micros_per_day / millise_per_day);

     }   

 

}

 

其实millise_per_day表示一天中的毫秒数,micros_per_day表示一天中的微妙数,初看结果输出结果应该是1000,但是本程序的结果是5,为什么呢?也许有人会想是因为值太大了超出了long型所能表示的数,但是其实不然,原来JAVA中是首先把micro_per_day的数值计算出来,(注意结果是int型,因为24,60等的数字都是int型的),结果是int型的,已经溢出了,然后再把int型提升为了long型,此时micros_per_day已经比真实值小了200倍,所以结果也是5。正确的写法应该如下:

public class LongDivison{

     public static void main(String[ ] args){

          final long millise_per_day  = 24L*60*60*1000;

          final long micros_per_day = 24L*60*60*1000*1000;

          System.out.println(micros_per_day / millise_per_day);

     }   

 

}

分享到:
评论
1 楼 Tech-Dragon 2007-06-08  
无语 

相关推荐

    Java Puzzlers 中文版(Java解惑)

    Java Puzzlers 中文版(Java解惑) Java 谜题 1——表达式谜题 谜题 1:奇数性 下面的方法意图确定它那唯一的参数是否是一个奇数。这个方法能够正确运转 吗? public static boolean isOdd(int i){ return i % 2 == 1...

    java 解惑.pdf

    ### Java解惑知识点详解 #### 一、表达式谜题 **谜题1:奇数性** - **描述**:程序看似应该返回一个布尔值,表明一个数字是否为奇数,但结果却出乎意料。 - **解惑**:在进行模运算时,需要注意负数的情况。当输入...

    Java解惑 PPT1

    【Java解惑PPT1】深入探讨Java编程中的常见迷惑 在Java编程中,了解语言的细微之处至关重要,因为这可能会导致意想不到的行为。本PPT主要涵盖了五个有趣的Java谜题,帮助开发者理解Java的一些核心概念。 **谜题1:...

    Java 解惑 (陈昊鹏 译)

    《Java解惑》这本书通过实例深入讲解了Java编程中一些容易被忽略的知识点,帮助读者避免在编程中犯错。 书中提到了两个具体的实例,通过这两个实例,我们可以学习到Java中关于整数运算和浮点数表示方面的知识。 第...

    java解惑

    ### Java解惑:深入理解表达式谜题与浮点数陷阱 #### 谜题1:奇数性检测中的陷阱 在《Java解惑》一书中,作者通过一系列的谜题探讨了Java语言中容易忽视但又至关重要的细节。第一个谜题是关于奇数性检测的,表面上...

    《Java迷题解惑》PDF

    有意思的一本书,都是有点难度且又比较有意思的JAVA问题,比如表达式奇数性解惑、找零时刻、长整除、十六进制的趣数等等,特别是这本书的语言也很会激起我们的兴趣,先从实际生活中的故事说起,然后了解所需,最后用...

    Java解惑(中文)

    ### Java解惑:常见误区与解答 #### 一、判断奇数的方法问题 **知识点概述:** 本节讨论了一个常见的编程误区,即如何正确判断一个整数是否为奇数。通常,开发人员会认为可以通过模运算(%)来判断一个整数是否能...

    Java 解惑

    ### Java 解惑知识点详解 #### 一、表达式谜题:奇数性的判断 **谜题背景** 在Java中,有一个方法意图判断一个整数是否为奇数。该方法使用了模运算(%),但其行为并非总是符合预期。 **问题描述** 方法`public ...

    iava解惑,深入剖析java

    长整除可能涉及到`long`类型的使用。在进行大整数除法时,若结果超过了`int`类型的范围,需要使用`long`类型进行计算,例如`long result = dividend / divisor;`。 谜题4:初级问题 这个谜题可能涵盖基础语法,如...

    Java解惑(谜题)CHM中英文双版本

    谜题3:长整除 谜题4:初级问题 谜题5:十六进制的趣事 谜题6:多重转型 谜题7:互换内容 谜题8:Dos Equis 谜题9:半斤 谜题10:八两 Java谜题2——字符谜题 谜题11:最后的笑声 谜题12:ABC 谜题13:...

    Java谜题解惑 中文版CHM格式

    该恒等式具有正确的含义,但是当与 Java 的截尾整数整除操作符相结合时,它就意味着:当取余操作返回一个非零的结果时,它与左操作数具有相同的正负符号。 当 i 是一个负奇数时,i % 2 等于-1而不是1, 因此 isOdd ...

    Java 谜题解惑

    ### Java谜题解惑知识点详解 #### 一、奇数性的判断 **题目背景:** 在Java编程中,经常需要判断一个整数是否为奇数。一个常见的方法是使用模运算符`%`来实现这一功能。然而,在实际应用过程中,这种简单的实现...

Global site tag (gtag.js) - Google Analytics