逻辑运算符,位运算符以及三目运算符总结

本文介绍了逻辑运算符、位运算符及三目条件运算符的基本概念与使用方法。包括逻辑与(&&), 逻辑或(||), 逻辑非(!), 位与(&), 位或(|), 位异或(^), 位取反(~)以及三目条件运算符的语法与应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、逻辑运算符:

包括:1。&&逻辑与 2。||逻辑或 3。!逻辑非

逻辑运算符用于对包含关系运算符的表达式进行合并或取非

对于使用逻辑运算符的表达式,返回0表示“假”,返回1表示“真”。关于逻辑运算符的解释

请注意:任何使用两个字符做符号的运算符,两字符之间不应有空格,即将==写成= =是错误的。

假设一个程序在同时满足条件a<10和b==7时,必须执行某些操作。应使用关系运算符和逻辑运算符“与”来写这个

条件的代码。用&&表示“与”运算符,该条件代码如下:

(a<10) && (b==7);

类似地,“或”是用于检查两个条件中是否有一个为真的运算符。它由两个连续的管道符号(||)表示。如果上例

改为:如果任一语句为真,则程序需执行某些操作,则条件代码如下:

(a<10) || (b==7);

第三个逻辑运算符“非”用一个感叹号(!)表示。这个运算符对表达式的真值取反。例如,如果变量s小于10,程序

程序需执行某些操作,则条件代码如下:

(s<10)

(!(s>=10)) //s不大于等于10

关系运算符和逻辑运算符的优先级一般都低于算术运算符。例如,5>4+3的计算与5>(4+3)运算符是一样的,即

先计算4+3,再执行关系运算。此表达示的结果为“假”,即,将返回0。

下面的语句

printf("%d",5>4+3);

将输出 0

可以总结为:&&的结果是真真为真。||的结果是假假为假。

二、位运算符:

包括:1。&位与符 2。|位或符 3。^位异或符 4。~位取反符

以操作数12为例。位运算符将数字12视为1100。位运算符将操作数视为位而不是数值。数值

可以是任意进制的:十进制、八进制或十六进制。位运算符则将操作数转化为二进制,并相应地返回1或0。

位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。例如:

表达式10&15表示(1010 & 1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1

表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。

表达式10^15表示(1010 ^ 1111), 它将返回表示0101的值5。此时是同性相斥,相同的就为假。

表达式~10表示(~1010),它将返回表示0101的值 -11。此号好理解,按位取反

三目条件运算符:

表达式为:(表达式1?表达式2:表达式3) 先求解表达式1, 
若其值为真(非0)则将表达式2的值作为整个表达式的取值, 否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。 例如: 
1、max=((a>b)?a:b) 
就是将a和b二者中较大的一个赋给max。 2、min=(a<b)?a:b 
就是将a和b二者中较小的一个赋给min。 
  
优先级 
条件运算符优先级高于赋值、逗号运算符,低于其他运算符 例如:int m=5,n=10,a=1,b=3 ⑴ m<n ? x : a+3 
等价于:(m<n) ?(x) :(a+3) 
⑵ a++>=10 && b-->20 ? a : b 
等价于:(a++>=10 && b-->20) ? a : b ⑶ x=((3+a>5 )? 100 : 200) 
等价于:x= (( 3+a>5 ) ? 100 : 200 ) 
 
结合性 
条件运算符具有右结合性 
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。 例如: 
(w<x) ? (x+w) : ((x<y) ? x : y) 与 w<x ? x+w : ( x<y ? x : y) 等价 与 (w<x ? x+w : x<y) ? x : y 不等价 

w<x ? x+w : x<(y ? x : y) 不等价 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值