如何判断一个整数是否为奇数

        要想判断某个整数是否为奇数,首先我们要弄清楚“奇数”的概念。下面是数学中的定义:整数中,能被2整除

的数是“偶数”,反之是“奇数”,偶数可用2k表示 ,奇数可用2k+1表示,这里k是整数。

        那么,根据这个定义我们很容易写出如下程序达到判断奇数的目的: 

     /**
     * 判断某个整数是否为奇数
     * 
     * 
@param  i
     *                 要判断的整数
     * 
@return
     *                 返回判断的结果
     
*/
    
public   boolean  isOdd( int  i)
    {
        
return  (i % 2 !=   0 ;
    }

        这段代码虽然可以实现功能,但是“%”的效率不是最高的,那么有没有更好的方法呢?答案是肯定的,利位

操作符“&”,也就是“按位与”,下面是这个方法的代码:

     /**
     * 判断某个整数是否为奇数
     * 
     * 
@param  i
     *                 要判断的整数
     * 
@return
     *                 返回判断的结果
     
*/
    
public   boolean  isOdd( int  i)
    {
        
return  (i & 1 !=   0 ;
    }

        这个方法相信很多人都知道,但是大部分都是“知其然,不知其所以然”,那么到底为什么呢?我们要先弄清

楚“&”的用法。“&”就是按位与,也就是对两个数的二进制的每一位进行“与”的操作,可用下面的表格来

说明:

数值二进制
113090010  1100  0010  1101
7980000  0011  0001  1110
11309&7980000  0000  0000  1100

       明白了“&”的用法就好说了,大家请注意,所有的奇数都有一个特点,也就是二进制的最后一位必定是

1”,相反,偶数最后一位必定是“0”。而“1”的二进制是“0001”,也就是除了最后一位是“1”,其余全

为“0”,那么无论什么数字和“1”进行“&”的运算,得到的数除了最后一位,其余也将全部为“0”,那么“奇

&1”的结果则必然是1,“偶数&1”的结果则必然是0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值