`
_Yggd
  • 浏览: 86395 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

判断奇偶操作

 
阅读更多

public static boolean isOdd(int i){ 

return i % 2 == 1; 

以上代码对么?

奇数可以被定义为被 2 整除余数为 1 的整数。表达式 i % 2 计算的是 i 整除 2 

时所产生的余数,因此看起来这个程序应该能够正确运转。遗憾的是,它不能;

它在四分之一的时间里返回的都是错误的答案。  

为什么是四分之一?因为在所有的 int 数值中,有一半都是负数,而 isOdd 方

法对于对所有负奇数的判断都会失败。在任何负整数上调用该方法都回返回 

false ,不管该整数是偶数还是奇数。

 

这个问题很容易订正。只需将 i % 2 与 0 而不是与 1 比较,并且反转比较的含

义即可:  

public static boolean isOdd(int i){ 

 

return i % 2 != 0; 

如果你正在在一个性能临界(performance-critical)环境中使用 isOdd 方法,

那么用位操作符 AND(&)来替代取余操作符会显得更好:  

public static boolean isOdd(int i){ 

 

return (i & 1) != 0; 

}

分享到:
评论

相关推荐

    奇偶校验实验

    实现奇偶校验操作,判断校验位。计算机网络的简单实验。

    C++位操作的常见用法小结

    主要介绍了C++位操作的常见用法,包括了判断奇偶、交换两个数、正负转换、求绝对值等,需要的朋友可以参考下

    XML实用教程word版

    xml 实用教程 word 版 xml 实用教程 word 版xml 实用教程 word 版xml 实用教程 word 版

    Python神经网络编程-根据身份证号判断性别

    要根据身份证号判断性别,可以按照以下步骤进行操作: 获取身份证号中的性别标识位: 身份证号中的第17位表示性别信息,奇数为男性,偶数为女性。 提取性别信息: 根据身份证号的第17位,判断其奇偶性。 如果是...

    2单片机判断题.doc

    1.8051每个中断源相应地在芯片上都有其中断请求输入引脚 (错, 定时器是输出引脚 ) 2.程序计数器PC不能对它进行读写操作 (对, PC是16位特殊...(错,奇偶标志P随累加器A中的1的个数 变化. ) 12.如JC rel发生跳转时

    数据库系统实现

    9.2.2 优先图及冲突可串行性判断 9.2.3 优先图测试发挥作用的原因 习题 9.3 使用锁的可串行性实现 9.3.1 锁 9.3.2 封锁调度器 9.3.3 两阶段封锁 9.3.4 两阶段封锁发挥作用的原因 习题 9.4 用...

    前端JavaScript隔行换色

    2.通过选择器获取表格的表体对象(tbody tr),并使用奇偶数选择器来判断奇数行和偶数行。 奇数行使用选择器tbody tr:odd,并设置其背景颜色为skyblue。 偶数行使用选择器tbody tr:even,并设置其背景颜色为pink。 ...

    delphi 开发经验技巧宝典源码

    0108 使用Odd函数改变StringGrid组件的奇偶行颜色 72 0109 使用Pred函数获取顺序类型表达式的前驱 72 0110 使用Succ函数获取顺序类型表达式的后继 73 4.4 进制转换相关函数 73 0111 如何将二进制转换为八...

    delphi 开发经验技巧宝典源码06

    0108 使用Odd函数改变StringGrid组件的奇偶行颜色 72 0109 使用Pred函数获取顺序类型表达式的前驱 72 0110 使用Succ函数获取顺序类型表达式的后继 73 4.4 进制转换相关函数 73 0111 如何将二进制转换为八...

    WIN XP蓝屏代码大全

    ◆错误分析:系统内存存储器奇偶校验产生错误, 通常是因为有缺陷的内存(包括物理内存、二级缓存或者显卡显存)时设备驱动程序访问不存在的内存地址等原因引起的. 另外, 硬盘被病毒或者其他问题所损伤, 以出现这个停机...

    Delphi 串口测试代码.rar

    Delphi 串口测试代码,在Delphi7.0下可顺利编译,操作选项有:串口选择、打开和关闭串口,通信参数设置,包括波特率、奇偶校验、校验位显示、状态输出(OTR/RTS)、串口状态说明等,程序会自动扫描串口,你可选择...

    微型计算机讲稿

    芯片主要引脚的功能以及与8086CPU的连接,级连方式下的硬件连接,端口的奇偶地址 。8259A的初始化:各控制字的格式不用记,但要求掌握个控制位的意义及初始化流程 ICW1:中断请求信号的触发方式、级连方式 ICW2...

    算法心得:高效算法的奥秘(原书第2版).[美]Henry S.Warren,Jr(带详细书签).pdf

    3.3 判断取值范围是否跨越了2的幂边界 59 3.4 习题 61 第4章 算术边界 63 4.1 检测整数边界 63 4.2 通过加减法传播边界 65 4.3 通过逻辑操作传播边界 69 4.4 习题 73 第5章 位计数 74 5.1 统计值为“1”的位...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例047 使用条件运算符判断数字的奇偶性 78 实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印2000~2020年的所有闰年 81 实例051 前置运算符和后置运算符的区别 82 实例052...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例047 使用条件运算符判断数字的奇偶性 78 实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印2000~2020年的所有闰年 81 实例051 前置运算符和后置运算符的区别 82 实例052...

    javascript入门笔记

    使用场合:任意数字与1做按位与操作,可以判断奇偶性,结果为1,则为奇数,否则为偶数 0 :0 1 :1 2 :10 3 :11 4 :100 5 :101 5 & 1 101 001 ========== 001 4 & 1 100 001 ==== 000 2、按...

    嵌入式linux系统开发课程设计

    1)分别用if和switch判断一个数的奇偶性并输出结果。 2)用for语句编写程序,计算100到200之间所有奇数的和。 任务3、嵌入式Linux程序设计,完成以下任务 1)创建两线程,通过打印输出各自的线程号和打印次序,要求...

    CPU卡调试助手(FMCOS)

    扫描:扫描卡片的部分或整个文件系统,发现其中存在的文件(或目录),并自动判断文件类型及安全状态。 外部认证/PIN:计算外部认证(加密后的随机数)。一键向卡片发送外部认证或验证口令请求。 MAC:计算线路保护...

    贪吃蛇Java源码分析

    *1)主要部分已经集成为一个对象SnakeModel,利用键盘控制实现操作。 *文件名:SnakeModel.java *作者:C.Jason *要点分析: *1)数据结构:matrix[][]用来存储地图上面的信息,如果什么也没有设置为false, * 如果...

Global site tag (gtag.js) - Google Analytics