day07

目录

1 位与运算符

2 位或运算符

3 异或运算符

4 按位取反

5 左移运算符

6 右移运算符


1 位与运算符

#include <iostream>

using namespace std;

/*
	&
*/

int main()
{
	int a = 0b1010; // 10
	int b = 0b0110; // 6
		//	0b0010  // 2
	int c = (a & b); // 2
	cout << c << endl; // 按位相与,有0必0
	return 0;
}

2 位或运算符

#include <iostream>

using namespace std;

/*
	| 有1即1
*/

int main()
{
	int a = 0b1010; // 10
	int b = 0b0110; // 6
		//	0b1110  // 14
	int c = (a | b); // 14
	cout << c << endl; // 按位相或,有1即1
	return 0;
}

3 异或运算符

#include <iostream>

using namespace std;

/*
	^ 异或
*/

int main()
{
	int a = 0b1010; // 10
	int b = 0b0110; // 6
		//	0b1100  // 12
	int c = (a ^ b); // 12
	cout << c << endl; // 相同为0,不同为1
	return 0;
}

4 按位取反

#include <iostream>

using namespace std;

/*
*	~	按位取反	高位的0不能忽略
*/

int main()
{
	int a = 0b1010; //  10
	int c = ~a;		// -11
	cout << c << endl; 
	return 0;
}

5 左移运算符

#include <iostream>

using namespace std;

/*
  1.	左移一位,相当于对原来的数乘以2
	    x<<y	将x左移y位,是二进制的数字,想当于x*2^y
  2.	负数的左移,也满足
  3.	左移负数位是不被允许的
  4.	左移溢出数据会为0
*/

int main()
{
	int a = 0b11; //  3
	int c = a << 1; // 6
	cout << c << endl;
	return 0;
}

6 右移运算符

#include <iostream>

using namespace std;

/*
  1.	右移一位,相当于对原来的数除以2
		x>>y	将x右移y位,是二进制的数字,想当于x/2^y
  2.	负数的右移,也满足
  3.	右移移负数位是不被允许的
*/

int main()
{
	int a = 0b111; //  7
	int c = a >> 1; // 3 
	cout << c << endl;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

「已注销」

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

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

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

打赏作者

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

抵扣说明:

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

余额充值