加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

逻辑运算的结果与优先级分析

发布时间:2021-05-31 01:04:51 所属栏目:编程 来源:互联网
导读:在编程中,我们一样平常将零值称为假,将非零值称为真。逻辑运算的功效也只有真和假,真对应的值为 1,假对应的值为 0。 1) 与运算() 参加运算的两个表达式都为真时
  在编程中,我们一样平常将零值称为“假”,将非零值称为“真”。逻辑运算的功效也只有“真”和“假”,“真”对应的值为 1,“假”对应的值为 0。 1) 与运算(&&) 参加运算的两个表达式都为真时,功效才为真,不然为假。譬喻:

5&&0

5为真,0为假,相与的功效为假,也就是 0。

(5>0) && (4>2)

5>0 的功效是1,为真,4>2功效是1,也为真,以是相与的功效为真,也就是1。 2) 或运算(||) 参加运算的两个表达式只要有一个为真,功效就为真;两个表达式都为假时功效才为假。譬喻:

10 || 0

10为真,0为假,相或的功效为真,也就是 1。

(5>0) || (5>8)

5>0 的功效是1,为真,5>8 的功效是0,为假,以是相或的功效为真,也就是1。 3) 非运算(!) 参加运算的表达式为真时,功效为假;参加运算的表达式为假时,功效为真。譬喻:

!0

0 为假,非运算的功效为真,也就是 1。

!(5>0)

5>0 的功效是1,为真,非运算的功效为假,也就是 0。

输出逻辑运算的功效:

#include <stdio.h>

int main(){

int a = 0, b = 10, c = -6;

int result_1 = a&&b, result_2 = c||0;

printf("%d, %dn", result_1, !c);

printf("%d, %dn", 9&&0, result_2);

printf("%d, %dn", b||100, 0&&0);

return 0;

}

运行功效: 0, 0 0, 1 1, 0   逻辑运算符和其余运算符优先级从低到高依次为:

赋值运算符(=) < &&和|| < 相关运算符 < 算术运算符 < 非(!)

&& 和 || 低于相关运算符,! 高于算术运算符。   凭证运算符的优先次序可以得出:

a>b && c>d  等价于  (a>b)&&(c>d)

!b==c||d<a  等价于  ((!b)==c)||(d<a)

a+b>c&&x+y<b  等价于  ((a+b)>c)&&((x+y)<b)

其它,逻辑表达式也可以嵌套行使,譬喻a>b && b || 9>c,a || c>d &&  !p。 逻辑运算符举例:

#include <stdio.h>

int main(){

char c='k';

int i=1,j=2,k=3;

float x=3e+5,y=0.85;

printf( "%d,%dn", !x*!y, !!!x );

printf( "%d,%dn", x||i&&j-3, i<j&&x<y );

printf( "%d,%dn", i==5&&c&&(j=8), x+y||i+j+k );

return 0;

}

运行功效: 0,0 1,0 0,1 本例中!x和!y别离为0,!x*!y也为0,故其输出值为0。因为x为非0,故!!!x的逻辑值为0。对x|| i && j-3式,先计较j-3的值为非0,再求i && j-3的逻辑值为1,故x||i&&j-3的逻辑值为 1。对i<j&&x<y式,因为i<j的值为1,而x<y为0故表达式的值为1,0相与,最后为0,对i==5&&c&&(j=8)式,因为i==5为假,即值为0,该表达式由两个与运算构成,以是整个表达式的值为0。对付式x+ y||i+j+k因为x+y的值为非0,故整个或表达式的值为1。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读