操作符讲解1---C语言(二)

简介: 操作符讲解1---C语言(二)

4.位操作符


 位操作符有:&(按位与)、|(按位或)、^(按位异或)3个操作符。话不多说,看代码:



 3和5的二进制分别简写成0011和1001,前面的28位都是0。


按位与&:对应二进制位进行操作,只要有0,该二进制位最终就是0;只有全1,结果才为1;


按位或|:对应二进制位进行操作,只要有1,结果就是1;只有全0,结果才为0;

按位异或^:这个尖操作符不是数学中表示阶乘的那个符号,在计算机中是异或操作符。"同0异1",二进制位都为0或都为1,得到的结果是0;二进制位是0、1得到的结果是1;


5.逻辑操作符


 逻辑操作符有三个:&&(逻辑与)、||(逻辑或)、!(逻辑反)。它们针对的是结果的真和假!常被用在判断的条件中表示"并且"、"或者"、"非"。


5.1逻辑与

 逻辑与是并且的意思,只有当两个条件都满足时,结果才为真。字面理解,A并且B都完成它们的任务,这件事才能完成~


 为什么这里会打印出青年呢?这是由于在计算机中,想表达数学中一个连续区间,不能这样写,需要用到&&(并且)这个操作符。这里能打印出来的原因是:



 关系操作符(<)从左到右的操作步骤,后面也会讲关系操作符。



5.2逻辑或

 逻辑或是或者的意思,只要有一个条件达成,那么结果就为真。A或者B完成任务,这个任务就完成了~



 a<20成立,||(或者)只要两边有一个条件成立,该判断条件的结果就是真。


5.3练习

1.打印出1000-2000之间为闰年的年份


 ==关系操作符使用来判断相等的,我们在这里提前看到了!(逻辑反)。是的,它其实就是进行一种相反的操作,!=是判断不等于的关系操作符。


2.判断年龄



5.4逻辑非

 !感叹号在计算机中表示的是逻辑非,它可以把真的变成假,假的变成真。在计算机中,非0为真,如果非0值前面加上!,结果就是假,值为0。如果给0加上感叹号,结果变为真,默认的表示真的数值是1。



 以上就是三个逻辑表达式的基本内容啦。接下来还有关于逻辑与和逻辑或控制表达式求值的补充知识点~


 我们知道逻辑与只要两边有一边出现了假,那结果一定为假,逻辑或只有一边出现了真,那结果一定为真;我们还需要知道的一点是,计算机在执行逻辑与和逻辑或操作符的时候,确保先计算左操作数,再计算右操作数;结合前面的两点,这两个逻辑操作符还有一个特性,那就是如果这个表达式在计算右边的操作数之前已经有确切的答案了,那么右边的表达式不会被执行。

#include <stdio.h>
int main()
{
  int a = 0;
  int b = 1;
  int c = 2;
  int d = a++ && ++b && c++;
  printf("%d %d %d %d", a, b, c, d);
  return 0;
}

 这道题的结果是多少,思考一会,好,我们看答案~



 因为a++,++是后置加加,a是先使用原先的值参与表达式求值运算,再自己增加1(自增)。由于a原先的值是0,而且是&&逻辑与操作符,左边的操作数为假,右边的++b,c++都没能执行,就结束了,表达式的结果为0,故d里存放的值是0。


 若换成逻辑或呢?我们依旧分析,a++使用的是0,结果还不确定。执行++b,++是前置加加,b本来是1,先自增成2,再用来参与表达式求值,由于是||逻辑或,出现了操作数为真,结果肯定为真,表达式的结果为1,故d里的值为1。c++就没有被执行了。最后的结果就是:1 2 2 1。



 总结:逻辑与就是并且、逻辑或就是或者、逻辑非就是非,&&和||对表达式求值有控制效果,术语叫做短路求值,&&当出现假时,停止运算;||当出现真时,停止运算。


 好啦~,这篇字数挺多了,分成两篇学习操作符吧~。


结语:希望读者读完能有所收获!对C语言操作符有进一步的认识!✔


 读者对本文不理解的地方,或是发现文章内容上有误等,请在下方评论留言告诉博主哟~,也可以对博主提出一些文章改进的建议,感激不尽!最后的最后!


 ❤求点赞,求关注,你的点赞是我更新的动力,一起进步吧。

相关文章
|
3月前
|
存储 C语言 索引
【C语言篇】操作符详解(下篇)
如果某个操作数的类型在上⾯这个列表中排名靠后,那么⾸先要转换为另外⼀个操作数的类型后执⾏运算。
72 0
|
3月前
|
程序员 编译器 C语言
【C语言篇】操作符详解(上篇)
这是合法表达式,不会报错,但是通常达不到想要的结果, 即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的表达式。
237 0
|
15天前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
30 10
|
1月前
|
存储 编译器 C语言
【C语言】简单介绍进制和操作符
【C语言】简单介绍进制和操作符
152 1
|
1月前
|
存储 编译器 C语言
初识C语言5——操作符详解
初识C语言5——操作符详解
163 0
|
3月前
|
C语言
C语言操作符(补充+面试)
C语言操作符(补充+面试)
45 6
|
3月前
|
存储 编译器 C语言
十一:《初学C语言》— 操作符详解(上)
【8月更文挑战第12天】本篇文章讲解了二进制与非二进制的转换;原码反码和补码;移位操作符及位操作符,并附上多个教学代码及代码练习示例
56 0
十一:《初学C语言》—  操作符详解(上)
|
4月前
|
C语言
五:《初学C语言》— 操作符
本篇文章主要讲解了关系操作符和逻辑操作符并附上了多个代码示例
43 1
五:《初学C语言》—  操作符
|
5月前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
5月前
|
编译器 C语言
【C语言】:中移位操作符,位操作符详运算规则详解
【C语言】:中移位操作符,位操作符详运算规则详解
40 1