C语言中逻辑运算符与位运算符总结
C语言中逻辑运算符与位运算符总结
老分不清一个&号与俩的用法,今天专门拿出来整理整理:
一、逻辑运算符:
包括: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。此号好理解,按位取反
C语言运算符
百科名片
运算符是告诉编译程序执行特定算术或逻辑操作的符号。C语言的运算范围很宽,把除了控制语句与输入输出以外的几乎所有的基本操作都作为运算符处理。主要分为三大类:算术运算符、 关系运算符和逻辑运算符、按位运算符。除此之外,还有一些用于完成特殊任务的运算符。
目录
C语言运算符分类
运算符优先级和结合性
运算符优先级等级口诀及注释运算符优先级等级口诀
运算符优先级等级注释
运算符应用举例C语言运算符分类
运算符优先级和结合性
运算符优先级等级口诀及注释 运算符优先级等级口诀
运算符优先级等级注释
运算符应用举例
展开 编辑本段C语言运算符分类
1级(左结合) () 圆括号;[]下标运算符;->指向结构体成员运算符;. 结构体成员运算符。 2级(右结合) !逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符。 3级(左结合) *乘法运算符;/除法运算符;%取余运算符。 4级(左结合) +加法运算符;-减法运算符。 5级(左结合) <>右移运算符。 6级(左结合) 、>=关系运算符。 7级(左结合) ==等于运算符;!=不等于运算符。 8级(左结合) &按位和运算符。 9级(左结合) ^按位异或运算符。 10级(左结合) |按位或运算符。 11级(左结合) &&逻辑和运算符。 12级(左结合) ||逻辑或运算符。 13级(右结合) ? :条件运算符。 14级(右结合) =、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。 15级(左结合) ,逗号运算符。
编辑本段运算符优先级和结合性
运算符的优先级:C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最