判断奇偶数的小妙招

要判断一个数是奇数还是偶数,一般首先想到的都是对2取余,但其实有更高明的算法。

首先咱们要知道一个知识点:偶数的二进制末位为0,奇数的二进制末位为1。

这是进位制本身的规则决定的,二进制是“逢二进一”。如果末位为0,说明它“逢”的都是二,没有零头,即它一定能被2整除。

同时,如果八进制、十进制、十六进制的末位为0,就表示这个数能分别被8、10、16整除。

明白了这个知识点,咱们只需要两步就能判断出一个数的奇偶;

①取要判断的数的二进制的末位。

②判断末位是0还是1。

第①步没有必要先将这个数转化为二进制,因为不管你输入的数是几进制的,在计算机内部都是按二进制计算的。要取出二进制的末位,只需要用到一个简的位运算:用这个数“& 1”。

按位与(&)的运算规则是只有当两个对应二进制位都为1时,结果才为1,否则结果为0。1表示只有末位是1,前面都是0,所以不管一个二进制数有多少位,“&1”的结果必然只剩末位数。

比如:

代码如下:

#include<stdio.h>
int main(){
    int i;
    scanf("%d", &i);
    if((i&1)==0){
        printf("even number\n");
    } else {
        printf("odd number\n");
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金创想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值