zoukankan      html  css  js  c++  java
  • 谜题1:奇数性

    isOdd方法用来判断输入参数i是否为奇数,结果会怎样呢?

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

    考察的是%(取余)运算符的使用,该操作符被定义为对于所
    有的 int 数值 a 和所有的非零 int 数值 b,都满足下面的恒等式:
    (a / b) * b + (a % b) == a ;

    当isOdd方法传入的参数是负奇数时,返回依然是FALSE,但负奇数也是奇数,因此上述代码存在缺陷,因此在使用时,通常改为如下更符合该操作符的定义:

    public static boolean isOdd(int i){
      return i % 2 != 0;
    }

    另外取余和取模还有很多不同之处

    取余:rem(5,2) = 1

        rem(5,-2) = 1

           rem(-5,2) = -1

           rem(-5,-2) = -1

    取模:mod(5,2) = 1

        mod(5,-2) = -1

           mod(-5,2) = 1

           mod(-5,-2) = -1

    综上来看二者却有不同,取余结果的正负与被除数相同,取模结果的正负与除数相同

    还有当是浮点型时,先四舍五入再取余

    例如:17%5.6 = 5;

    还有一种情况例如:10%13 = 10;

    -----------------------------------------------------------------

    仔细研究发现一个小小运算符都如此的奇妙。。

  • 相关阅读:
    CentOS7 PXE安装批量安装操作系统
    004_MySQL 主从配置
    CentOS 桥接网卡配置
    玩转 Jupyter Notebook (CentOS)
    搭建专属于自己的Leanote云笔记本
    wetty 安装(web+tty)
    wget命令详解
    linux 下find---xargs以及find--- -exec结合使用
    Linux 交换分区swap
    Linux 时区的修改
  • 原文地址:https://www.cnblogs.com/applemy/p/6366109.html
Copyright © 2011-2022 走看看