码迷,mamicode.com
首页 > 其他好文 > 详细

高效奇偶判断计算

时间:2019-08-30 18:43:27      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:ios   很多   ret   其他   ace   bool   运算   class   info   

问题:

奇偶判断

思路:

使用 & 进行奇偶判断,比直接使用 % 高效很多

实现:

C++:

#include <iostream>
#include <string>
#include <cstdio>
#include <sstream>
#include <vector>

using namespace std;

bool isOdd(int i){
    return (i & 1)!=0;
}

int main(){
    
    
    for(int i =0;i<6;i++){
        cout<<"i = "<<i<<" ,isOdd = "<<isOdd(i)<<endl;
    }
    
    return 0;
}

输出:

i = 0 ,isOdd = 0
i = 1 ,isOdd = 1
i = 2 ,isOdd = 0
i = 3 ,isOdd = 1
i = 4 ,isOdd = 0
i = 5 ,isOdd = 1

分析:

先了解下位运算符 & ,两个数用 & 进行位运算,本质上就是两个数的2进制运算,在运算过程中,只有 1 & 1 的结果是1,其他结果都是 0,如图:

技术图片

 

 

1的2进制是 0000 0001,任何数与 1 进行 & 运算,本质上是它的2进制的数最后一位与1的计算

eg1:

2的2进制是: 0000 0010
                   ^
1的2进制是: 0000 0001
                   ^
运算结果    0000 0000

0 & 1 = 0,得出2不是基数

 

eg2:

3的2进制是: 0000 0011
                   ^
1的2进制是: 0000 0001
                   ^
运算结果    0000 0001

1 & 1 = 0,得出3不是基数

 

高效奇偶判断计算

标签:ios   很多   ret   其他   ace   bool   运算   class   info   

原文地址:https://www.cnblogs.com/lyc94620/p/11436260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!