高效奇偶判断计算详解编程语言

问题:

奇偶判断

思路:

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

实现:

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不是基数

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/20658.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论