c++位运算—&

目录

一:&运算的介绍

二:&运算的一些用法 

        1:求出除以2的余数:

        2:求出一个数的二进制中有几个“1”


一:&运算的介绍

        &是一种位运算,如3&5的结果为1:

        c++位运算—&_第1张图片

         运行原理如下:首先把5和3用二进制表示                            101

         数位不够就用0来填补                                                         011

                                                                                             &--------------

         最后每一位都进行一次运算(都为1即为1,否则为0)         001

        解释:先看第一位 1和0因为0不成立,所以写0,第二位 0和1也是因为0不成立,所以写0,第三位1和1都成立,所以写1,最后就成了(001)2=(1)10。

二:&运算的一些用法 

        1:求出除以2的余数:

#include 
using namespace std;
void h(int n){
	n=n&1;
	if(n==1){
		cout<<"奇数\n";
	}
	else{
		cout<<"偶数\n"; 
	}
	return; 
}
int main(){
	int n;
	while(cin>>n){
		h(n);
	}
	return 0;
}

        用位运算来求除以二的余数会比%快一点,所以建议用位运算。

        2:求出一个数的二进制中有几个“1”

#include 
using namespace std;
void h(int n){
	int tot=0,t=n;
	while(n){
		n=n&(n-1);
		tot++;
	}
	cout<>n){
		h(n);
	}
	return 0;
}

        原理我也不是很懂,也是结合老师上课讲的编写出来的,所以没有写注释……

你可能感兴趣的:(c++位运算,html5,html,javascript)