移位操作判断数字的奇偶

判断结果
(number & 1) == 0number为偶数
(number & 1) == 1number为奇数

支持这种算法的基础有:
1.偶数的二进制串的最后一位为0;奇数的二进制串的最后一位为1
2.& :只有双方均为true时结果为true,否则为false。

下面是100以内的二进制串表

偶数二进制串奇数二进制串
000000000
200000010100000001
400000100300000011
600000110500000101
800001000700000111
1000001010900001001
12000011001100001011
14000011101300001101
16000100001500001111
18000100101700010001
20000101001900010011
22000101102100010101
24000110002300010111
26000110102500011001
28000111002700011011
30000111102900011101
32001000003100011111
34001000103300100001
36001001003500100011
38001001103700100101
40001010003900100111
42001010104100101001
44001011004300101011
46001011104500101101
48001100004700101111
50001100104900110001
52001101005100110011
54001101105300110101
56001110005500110111
58001110105700111001
60001111005900111011
62001111106100111101
64010000006300111111
66010000106501000001
68010001006701000011
70010001106901000101
72010010007101000111
74010010107301001001
76010011007501001011
78010011107701001101
80010100007901001111
82010100108101010001
84010101008301010011
86010101108501010101
88010110008701010111
90010110108901011001
92010111009101011011
94010111109301011101
96011000009501011111
98011000109701100001
100011001009901100011

注意奇数和偶数的二进制串的最后一位。
基于这种规律和&运算的特性,我们能够进行如下判断:

1100010 98
0000001 1
----------
0000000 0
**************
1100001 97
0000001 1
----------
0000001 1

这种方式也可以用于判断负数的奇偶性,原理是相同的。
END

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值