1.4 位运算

运算符 作用 a=27(10) b=20(10) ans
& 按位与 11011(2) 10100(2) 10000(2)=16(10)
| 按位或 11011(2) 10100(2) 11111(2)=31(10)
^ 异或 11011(2) 10100(2) 01111(2)=15(10)
~ 按位非 11011(2) 00100(2)=4(10)

P.S.数字后面的括号代表进制

众所周知,在计算机中,数字以二进制的格式存储。

而位运算,就是对于二进制数字直接处理的运算,因而执行速度最快。

本节内容理解就好,在正常的学习过程中,位运算基本都可以用其他四则运算替代,所以不是必须掌握的内容。

下面来一个一个的进行说明:

按位与,即&

对于两个二进制数字的某一位,如果它们都为1,则结果的这一位也为1

如果他们不都为1(即有0),则结果的这一位为0。

比如

110&101=100

111&110=110

按位或,即|

对于两个二进制数字的某一位,如果它们都为0,则结果的这一位也为0

如果他们不都为0(即有1),则结果的这一位为1。

比如

110&101=111

111&110=111

异或,即^

对于两个二进制数字的某一位,如果它们不一样,则结果的这一位为1

如果他们一样,则结果为0

比如

110&101=011=11

111&110=001=1

按位非,即~

对于以个二进制数字的某一位,如果它为0,则结果的这一位为1

如果他们为1,则结果的这一位为0。

比如

~1111 = 0000 = 0

~1010 = 0101 =101

最近的文章

1.3 数学运算

在c语言中,有很多种运算符。运算符分为几种:运算符说明举例解析=赋值运算符a = b;讲b的值赋给a+ - * / ()基本四则运算a = (b + c) * d;计算出(b+c)*d的值,并赋给a%取余运算a = b % 2;计算出b/2的余数,并附给a& | ^ …

继续阅读
更早的文章

1.5 选择结构

到目前为止,我们写过的所有程序都是顺序结构也就是执行完第一条语句之后,就直接执行第二条但是很多时候,计算机也需要选择结构#include <cstdio>using namespace std;int main(){ int a;//声明a scanf("%d&qu…

继续阅读