按位与、或、异或运算符
在计算机内存中,数据是以二进制的形式存储,每一个位存放一个0或1的二进制数值 。这里介绍的按位与、或、异或运算,就是针对二进制进行操作 。
例如“按位与”运算,就是对二进制的数据位进行“与”运算 。在数学中,定义了“与”运算的算术规则,使用符号“&”表示“与”运算 。例如a & b这样的表达式,如果a和b对象都为1的时候,表达式的值才为1,只要a和b对象有一个值是0,则表达式的值是0 。那么,我们可以归纳为如下表 。
与运算规则表
操作数a的值
操作数b的值
与运算表达式
表达式的值
0
0
a & b
0
0
1
0
1
0
0
1
1
1
可以看到,对于 a&b这样的表达式,只要a和b中有一个值为0,则表达式的值就为0 。只有a和b都是1的时候,表达式的结果才为1 。
对于“或”运算的算术规则,使用符号“|”符号表示“或”运算 。例如a | b这样的表达式,如果a和b对象都是0的时候,表达式的值才为0,只要a和b对象有一个值是1,则表达式的值就是1 。那么,我们可以归纳为如下表 。
或运算规则表
操作数a的值
操作数b的值
与运算表达式
表达式的值
0
0
a | b
0
0
1
1
1
0
1
1
1
1
可以看到,对于 a | b这样的表达式,只要a和b中有一个值为1,则表达式的值就为1 。只有a和b都是0的时候,表达式的结果才为0 。
对于“异或”运算的算术规则,使用符号“^”符号表示“异或”运算 。例如a ^ b这样的表达式,如果a和b对象全部相同,即全部是0或者全部是1的时候,表达式的值才为0;只要a和b对象不相同,则表达式的值就是1 。那么,我们可以归纳为如下表 。
异或运算规则表
操作数a的值
操作数b的值
与运算表达式
表达式的值
0
0
a ^ b
0
0
1
1
1
0
1
1
1
0
可以看到,对于 a ^ b这样的表达式,只有a和b的值都是0或者都是1的时候,表达式的值就为0 。如果a和b的值不相同,则表达式的结果为1 。如下是测试的例子:
文章插图
测试程序运行的结果如下:
文章插图
通过测试例子,我们可以知道“按位与、或、异或”运算,就是把二进制数据,按位进行数学的“与、或、异或”操作 。最终,表达式的值是按位运算的结果 。
逻辑与、或运算符
在C语言中,定义了“逻辑与”和“逻辑或”的操作 。逻辑与运算符是“&&”,可以有表达式“a && b”,那么,当a和b的值都是非0值的时候,表达式的值才为1;如果a和b的值中,有一个值为0,则表达式的值就是0 。那么,我们可以归纳逻辑与的操作如下表 。
逻辑与运算规则表
操作数a的值
操作数b的值
与运算表达式
表达式的值
0
0
a && b
0
0
非0
0
非0
0
0
非0
非0
1
可以看到,“逻辑与”的操作与“按位与”操作很相似 。但是,“按位与”操作的是二进制中的一个位数据,而这里的“逻辑与”操作,操作的是一个数值,该操作数值只有0和非0(非0可以是正数和负数)这样的状态 。
同理,“逻辑或”的操作与“按位或”的操作也很相似 。“按位或”操作的是二进制中的一个位数据,“逻辑或”操作的是一个数值 。操作数只有0和非0的 状态 。我们可以归纳逻辑或的运算如下表 。
逻辑或运算规则表
操作数a的值
操作数b的值
与运算表达式
表达式的值
0
0
a || b
0
0
非0
1
非0
0
1
非0
非0
1
可以看到,当a和b都是0值的时候,表达式的值才为0;如果a和b中有一个数为非0值,则表达式的值为1 。如下测试的例子:
文章插图
测试运行的结果如下:
文章插图
【新手必看c语言逻辑或运算规则 c语言或符号怎么打】 可以看到,逻辑与和逻辑或运算符,可以操作变量,组成一个表达式 。
推荐阅读
- 塞尔达正常开图玩法顺序 塞尔达新手攻略
- 新手必看5种透视方法 我的世界透视指令怎么用
- 新手最适合的4首钢琴曲 初学者最易上手钢琴曲
- 新手养卡提额注意事项 账单日前还款是大忌
- 赛尔号新手十大必练精灵 赛尔号和勇气号有什么区别
- 附:新手必备的控制台代码一览 钢铁雄心4控制台代码分享
- 小白必看的防治白蚁最有效的方法 白蚁防治的三种有效方法
- 新手必看超详细玩法指南 lol新手怎么快速上手
- 新手必看的摆地摊经验 夜市摆摊经验和技巧
- 小白必看的显卡选购技巧推荐指南 2023电脑显卡天梯图