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。此号好理解,按位取反
包括: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。此号好理解,按位取反
展开全部
"&"和"|"是位运算符
比如:
二进制数0110&0101
结果就是0100
二进制数0110|0101
结果就是0111
如果不是二进制数,内部运算的时候也是转化为二进制数进行的
"&&"和"||"是逻辑运算符
表达式1
&&
表达式2
先计算表达式1的值,若为真(即不为0)则接着计算表达式2的值,之后两个表达式的结果做与运算,即都是真才为真,否则为假;
这里要说下,表达式1若为假,则表达式2不进行运算,表达式1
&&
表达式2
的结果直接为假。
表达式1
||
表达式2
先计算表达式1的值,若为假(即不为0)则接着计算表达式2的值,之后两个表达式的结果做或运算,即都是假才为假,否则有一个真就为真;
这里要说下,表达式1若为真,则表达式2不进行运算,表达式1
||
表达式2
的结果直接为真。
比如:
二进制数0110&0101
结果就是0100
二进制数0110|0101
结果就是0111
如果不是二进制数,内部运算的时候也是转化为二进制数进行的
"&&"和"||"是逻辑运算符
表达式1
&&
表达式2
先计算表达式1的值,若为真(即不为0)则接着计算表达式2的值,之后两个表达式的结果做与运算,即都是真才为真,否则为假;
这里要说下,表达式1若为假,则表达式2不进行运算,表达式1
&&
表达式2
的结果直接为假。
表达式1
||
表达式2
先计算表达式1的值,若为假(即不为0)则接着计算表达式2的值,之后两个表达式的结果做或运算,即都是假才为假,否则有一个真就为真;
这里要说下,表达式1若为真,则表达式2不进行运算,表达式1
||
表达式2
的结果直接为真。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询