C++位运算知识点

81 篇文章 0 订阅
8 篇文章 0 订阅

位运算运算符

                  |          含义        |       运算符   |          格式

———————————————————————————

                  |        按位与      |         &          |          A&B

                  |        按位或      |          |          |           A|B

逻辑运算符|        按位异或  |          ^          |           A^B

                  |        按位取反  |          ~          |           A~B

———————————————————————————

移位运算符|         右移        |         >>         |          A>>B

                  |         左移        |         <<         |          A<<B

———————————————————————————

 与运算

与运算简介:

与运算是计算机中的一种基本的逻辑方式,表示符号为&。

这是一个双目运算符,参加运算的2个数据,按二进制位进行与运算。

运算规则:0&0=0,0&1=0,1&0=0,1&1=1。

即:2位同时为1,结果才为1,否则为0。

与运算用途

1、用于将变量中的某些位清零。

例:

请将一个int类型的低八位清零,而其他位保持不变。

int x=x&0xffffff00;

2、判断奇偶性。

代码:

if(x&1)
    cout<<"是奇数。";
else
    cout<<"是偶数。";

或运算

或运算简介

或运算是计算机中的一种基本的逻辑方式,表示符号为|。

这是一个双目运算符,参加运算的2个数据,按二进制位进行或运算。

运算规则:0|0=0,0|1=1,1|0=1,1|1=1。

即:2位同时为0,结果才为0,否则为1。

或运算用途

1、用来将变量中某些位置变成1。

例:

请将一个int类型的低八位全部设为1,而其余位保持不变。

int x;
cin>>x;
x=x|0xff;

异或运算

异或运算简介

或运算是计算机中的一种基本的逻辑方式,表示符号为^。

这是一个双目运算符,参加运算的2个数据,按二进制位进行异或运算。

运算规则:0^0=0,0^1=1,1^0=1,1^1=0。

即:当2位相同时,结果才为0,否则为1。

异或运算用途

1、用来将变量中的某些位翻转。2、用来保留变量中某些位的值。

例:
请将一个int类型的低三位全部翻转,而其余位保持不变。

int x;
cin>>x;
x=x^0b111;

左移运算

左移运算简介

语法格式:x<<n,x是需要移位的数字,n是需要移位的次数。

运算规则:按二进制形式把所有数字向左移动相应的位数。

移位时,高位移出(舍弃),低的空位补0,相当于乘以2的n次方。

当某个数左移1位相当于将这个数乘2。

右移运算

右移运算简介

语法格式:x>>n,x是需要移位的数字,n是需要移位的次数。

运算规则:按二进制形式把所有数字向右移动相应的位数。

移位时,低位移出(舍弃),高的空位补0,相当于除以2的n次方。

当某个数右移1位相当于将这个数除2。

取反运算

取反运算简介

这是一个单目运算符,将操作中的2进制位0变为1,1变为0。

例:

110101B取反:1010B

11111111B取反:0B

位运算练习题(含答案)

1、K11836 位操作

2、K11834 海明距离

3、K11448 二进制分类

4、K11835 与运算

5、K11432 二进制中1的个数

6、K10318 高低位交换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值