C语言——运算符和表达式(关系,逻辑,位)

目录

运算符和表达式——关系表达式

运算符和表达式——逻辑表达式

运算符和表达式——位运算表达式


运算符和表达式——关系表达式

关系表达式,就是用关系运算符连接的两个表达式,实际上,关系运算符也就是比较运算符。同时,关系运算不要求数据类型,参与关系运算的两个运算量可以是任意类型的数据

当比较结果成立时,其结果为1,而当比较结果不成立时,其结果为0

运算符举例结果
<5<111
>5>110
<5<=111
>5>=110
==5==110
!=3!=51

         在运算符中,等于之所以用两个等号表示,是因为如果只用一个等号表示的话,会与=(赋值)搞混

         所以只有两个等号==表示等于,在只有一个等号的情况下,=表示赋值

从优先级来说,算术运算符的优先级要高于关系运算符的优先级,而在关系运算符中,表格中前四列的优先级要高于后两列的优先级

我们可以看几个例子

11+(5<11)*11 的值为22

11+5<11*5    ——16<55 —— 其值为1

如果要用代码来验证,那么——

#include<stdio.h>
void main()
{
	printf("%d\n",5<11);
	printf("%d\n",11+(5<11)*11);
	printf("%d\n",11+5<11*11);
}

然后得到结果进行验证——

运算符和表达式——逻辑表达式

逻辑表达式是用逻辑运算符连接两个表达式,其中,参与逻辑运算的操作数为逻辑量,逻辑量没有太过严格的要求,整型,实型等都是可以的

其中,1表示真,0表示假,与关系表达式中是否成立有一点点类似

运算符含义举例结果
!50
&&5&&111
||5||111

在逻辑运算中,非零为真,零为假,因此逻辑运算不要求数据类型,任何类型的数据都可以参与逻辑运算

在逻辑运算优先级中,!>&&>| | ,为从右往左结合

来看——

int a=11, float b=5

! a —— 0

!(a<b) ——1

!a&&b —— 0

在表达上,C语言与数学不同的是,5<=X<=11,在C语言中,则需写为5<=X&&X<=11

但在C语言中,如果&&左侧为假,则不会再判断右侧真假;如果| |左侧为真,则不会在判断右侧真假。;类似于数学中和析取和合取,一旦出现假,那合取式必为假,一旦出现真,那合取式必为真

运算符和表达式——位运算表达式

与前面两个不同的是,位运算是对整型数据进行的运算,且符号位需要参与运算。

运算符含义举例结果
&按位与5%111
|按位或5|1115
^按位异或5^1114
~按位取反~5-6
<<左移5<<1110240
>>右移5>>110

#include<stdio.h>
void main()
{
	printf("%d\n",5&11);
	printf("%d\n",5|11);
	printf("%d\n",5^11);
	printf("%d\n",~5);
	printf("%d\n",5<<11);
	printf("%d\n",5>>11);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值