编程语言应用

首页 » 常识 » 常识 » C语言逻辑运算符详解
TUhjnbcbe - 2025/1/9 21:36:00
北京最正规治疗白癜风医院 https://jbk.39.net/yiyuanzaixian/bjzkbdfyy/etbdf/

逻辑运算,什么是逻辑运算 

计算机中除了进行加、减、乘、除等基本算术运算外,还可对两个或一个逻辑数进行逻辑运算。所谓逻辑数,是指不带符号的二进制数。利用逻辑运算可以进行两个数的比较,或者从某个数中选取某几位等操作。计算机中的逻辑运算,主要是指逻辑非、逻辑加、逻辑乘、逻辑异四种基本运算。


  

现在假设有这样一种

情况,我们的软件比较特殊,要求使用者必须成年,并且成绩大于等于60,该怎么办呢?或许你会想到使用嵌套的if语句,类似下面这样的代码:

#includestdio.hintmain(){intage;floatscore;printf("请输入你的年龄和成绩:");scanf("%d%f",age,score);if(age=18){if(score=60){printf("你满足条件,欢迎使用该软件\n");}else{printf("抱歉,你的成绩不及格,不能使用该软件\n");}}else{printf("抱歉,你还未成年,不能使用该软件!\n");}return0;}

这种方法虽然能够行得通,但不够简洁和专业,我们可以将其压缩为一条ifelse语句:

#includestdio.hintmain(){intage;floatscore;printf("请输入你的年龄和成绩:");scanf("%d%f",age,score);if(age=18score=60){printf("你满足条件,欢迎使用该软件\n");}else{printf("抱歉,你还未成年,或者成绩不及格,不能使用该软件!\n");}return0;}

是一个新的运算符,称为逻辑运算符,表示age=18和score=60两个条件必须同时成立才能执行if后面的代码,否则就执行else后面的代码。在高中数学中,我们就学过逻辑运算,例如p为真命题,q为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。在C语言中,也有类似的逻辑运算:

逻辑运算的结果

在编程中,我们一般将零值称为“假”,将非零值称为“真”。逻辑运算的结果也只有“真”和“假”,“真”对应的值为1,“假”对应的值为0。

1)与运算()

参与运算的两个表达式都为真时,结果才为真,否则为假。例如:

50

5为真,0为假,相与的结果为假,也就是0。

(50)(42)

50的结果是1,为真,42结果是1,也为真,所以相与的结果为真,也就是1。

2)或运算(

)

参与运算的两个表达式只要有一个为真,结果就为真;两个表达式都为假时结果才为假。例如:

10

0

10为真,0为假,相或的结果为真,也就是1。

(50)

(58)

50的结果是1,为真,58的结果是0,为假,所以相或的结果为真,也就是1。

)非运算(!)

参与运算的表达式为真时,结果为假;参与运算的表达式为假时,结果为真。例如:

!0

0为假,非运算的结果为真,也就是1。

!(50)

50的结果是1,为真,非运算的结果为假,也就是0。输出逻辑运算的结果:

#includestdio.hintmain(){inta=0,b=10,c=-6;intresult_1=ab,result_2=c

0;printf("%d,%d\n",result_1,!c);printf("%d,%d\n",90,result_2);printf("%d,%d\n",b

,00);return0;}

运行结果:0,00,11,0

优先级

逻辑运算符和其它运算符优先级从低到高依次为:

赋值运算符(=)和

关系运算符算术运算符非(!)

低于关系运算符,!高于算术运算符。按照运算符的优先顺序可以得出:

abcd等价于(ab)(cd)

!b==c

da等价于((!b)==c)

(da)

a+bcx+yb等价于((a+b)c)((x+y)b)

另外,逻辑表达式也可以嵌套使用,例如abb

9c,a

cd!p。

02:27
1
查看完整版本: C语言逻辑运算符详解