美文网首页
java解惑之奇数性

java解惑之奇数性

作者: demo2doc | 来源:发表于2017-12-31 21:05 被阅读30次

奇数性

下面的方法是为了验证一个整数是否为奇数,如下:

public static boolean isOdd(int number){
      return number % 2 == 1;
  }

但是该方法可行吗?

答案是否定的,当number为负奇数时,该方法就失效了,因为负奇数除以2时余数是-1,不等于1

这是java取余(%)算法中定义的结果,改操作符被定义为

对于任意整数a和所有的非0的整数b,满足:
(a/b)*b + a%b = a

整数a恒等于(a除以b的余数)+(a除以b的商),但是取余操作的结果不为0时,它的符号正负性和被除数一致[注:Java截尾整数操作规范],也就是说当a为奇负数时,取余的结果总是-1,上述方法总是false。

知道这个原因,就可以改正上面的方法了,将
number % 2 == 1;改成number %2 !=0


附录

源码地址

Java截尾整数操作规范

相关文章

  • java解惑之奇数性

    奇数性 下面的方法是为了验证一个整数是否为奇数,如下: 但是该方法可行吗? 答案是否定的,当number为负奇数时...

  • Java学习资料汇总全

    《JAVA解惑[JAVA PUZZLERS]》 《Java虚拟机规范(Java_SE_7)》 Java语言规范:基...

  • Kafka解惑之Old Producer(4)——Case An

    上接: Kafka解惑之Old Producer(1)—— Beginning Kafka解惑之Old Produ...

  • Kafka解惑之Old Producer(3)——Async A

    上接: Kafka解惑之Old Producer(1)—— Beginning Kafka解惑之Old Produ...

  • JAVA奇数数独

    给出一个奇数N,将1~N*N个数字填入N*N的格子中,使得格子中的每行、每列和每条对角线上的数字和是一样的,且每个...

  • Java解惑之Comparable和Comparator

    首先,两者都是比较器,主要用来对集合进行排序。废话不多说,直接上代码,来看看两者的区别 Comparable 可以...

  • java中利用while语句求1到100的奇数和

    java中利用while语句求1到100的奇数和 使用while语句,分别求1到100的奇数和与偶数和。 具体实例...

  • storm集群部署

    【准备】1:虚拟机奇数台(3)2:java环境(java1.7)3:python环境(python2.7)3:zo...

  • Java集合解惑

    本文取自工匠若水的qq群里的Java基础题目,把里面有关Java集合放在一起。全文github地址 35.Arra...

  • Java解惑48

    看代码 最后的打印结果是woof woof 解释 如果方法不是静态的,子类中进行重写,预示着要根据进行动态的分派;...

网友评论

      本文标题:java解惑之奇数性

      本文链接:https://www.haomeiwen.com/subject/xsgagxtx.html