zoukankan      html  css  js  c++  java
  • 高效奇偶判断计算

    问题:

    奇偶判断

    思路:

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

    实现:

    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不是基数
  • 相关阅读:
    mysql外键添加error1215
    shell命令获取最新文件的名称
    centos7 apache提供文件下载
    centos7 时间设置
    微服务通信的类型
    angular-cli
    npm
    模块相关
    加油!冲冲冲
    软件评测
  • 原文地址:https://www.cnblogs.com/lyc94620/p/11436260.html
Copyright © 2011-2022 走看看