逻辑运算符和逻辑表达式(逻辑或、逻辑与、逻辑非)
一、逻辑运算符
在C语言中,用“1”表示表达式的值为真,用“0”表示表达式的值为假。并且关系运算符具有左结合行,因此,若假设a、b、c的值分别为3、2、1,则关系表达式a>b>c的计算过程为:a>b>c=(a>b)>c=1>c=0(假)。这个例子说明,在数学上正确的表达式在C语言的逻辑上不一定总是正确的。
逻辑运算符(Logic Operator):
逻辑运算符 | 类型 | 含义 | 优先级 | 结合性 |
---|---|---|---|---|
! | 单目 | 逻辑非 | 最高 | 从右向左 |
&& | 双目 | 逻辑与 | 较高 | 从左向右 |
II | 双目 | 逻辑或 | 较低 | 从左向右 |
二、逻辑表达式
用逻辑运算符连接操作数组成的表达式称为逻辑表达式(Logic Expression)
逻辑表达式的值,即逻辑运算的结果值同样只有真和假两个值。
C语言规定 0 表示 假;1 表示 真。
逻辑运算的真假值表:
A的取值 | B的取值 | !A(求反运算) | A&&B(逻辑与) | AIIB(逻辑或) |
---|---|---|---|---|
非0 | 非0 | 0 | 1 | 1 |
非0 | 0 | 0 | 0 | 1 |
0 | 非0 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 0 |
逻辑与:仅当两个操作数都为真时,运算结果才为真;
逻辑或:仅当两个操作数都为假时,运算结果才为假;
逻辑非:若操作数为真,运算结果则为假;若操作数为假,运算结果则为真。
常用运算符的优先级与结合性:
优先级顺序 | 运算符种类 | 附加说明 | 结合方向 |
---|---|---|---|
1 | 一元运算符 | 逻辑非!求相反数- ++ - - size of 类型强制转换等 | 右-------》左 |
2 | 算术运算符 | * / % 高于 + - | 左-------》右 |
3 | 关系运算符 | < <= > >= 高于 == != | 左-------》右 |
4 | 逻辑运算符 | 除逻辑非之外 && 高于II | 左-------》右 |
5 | 赋值运算符 | = += -= *= /= %= | 右-------》左 |
注意:运算符&&和||都具有“短路”特性。也就是说,含有逻辑运算符(&&和||)的表达式的值可由先计算的左操作数的值单独推导出来,那么将不在计算右边的操作数的值,这就意味着表达式中的某些操作数可能不会被计算。
例如:a>1&&b++>2,仅当前面的表达式a>1为真时,后面表达式b++>2中的b++才会被计算。
反之,若改成b++>2&&a>1,则b++就一定会被计算了。当然,更好的方法是单独对b进行自增运算。
逻辑运算符和逻辑表达式(逻辑或、逻辑与、逻辑非)相关推荐
- 计算机科学中的逻辑运用,浅谈逻辑在计算机科学中的应用
摘 要:本文阐述了逻辑与计算.计算机的起源.程序设计之间的相互关系,并在一阶逻辑的基础上,以LISP.PROLOG等为例,给出了逻辑在程序设计语言和逻辑程序设计中的应用,以此说明计算机科学是逻辑的超大 ...
- 按位与 逻辑与 按位或| 逻辑或|| 及其应用
按位与& 逻辑与&& 按位或| 逻辑或|| 及其应用 结果:1&2 = 0 1&&2 = 1 结果: 概念: 掩码(英语:Mask)在计算机学科 ...
- mysql 逻辑备份 物理备份_数据库的逻辑备份和物理备份--非RMAN
数据库的逻辑备份和物理备份--非RMAN,不用借助其他工具,只要归档日志和物理备份就可以实现的备份 数据库的备份和恢复 常规而且重要,恢复得到理想状态 逻辑备份 利用EXP备份,从数据库提取写入操作系 ...
- 多变量逻辑回归python_Python实现逻辑回归(Logistic Regression in Python)
本文基于yhat上Logistic Regression in Python,作了中文翻译,并相应补充了一些内容.本文并不研究逻辑回归具体算法实现,而是使用了一些算法库,旨在帮助需要用Python来做 ...
- [转载] 吴恩达机器学习逻辑回归练习题:逻辑回归及规则化(python实现)
参考链接: 了解逻辑回归 Python实现 练习题背景:网易云课堂->吴恩达机器学习课程->逻辑回归练习题 对于练习题的详细内容,和课程中推荐的octave编程实现,请见:吴恩达机器学习逻 ...
- 同步时序逻辑与异步时序逻辑
同步时序逻辑: 是指表示状态的寄存器组的值只可能在唯一确定的触发条件发生时刻改变.只能由时钟的正跳沿或负跳沿触发的状态机就是一例. always @(posedge clock) 就是一个同步时序逻辑 ...
- 逻辑回归阈值_逻辑回归算法
(一)逻辑回归原理 1.整体概括 逻辑回归假设数据服从伯努利分布(0-1分布),通过极大似然函数的方法,运用梯度下降法来求解参数,来达到将数据二分类的目的. 2.灵感过程(来自B站UP主:文小刀是也) ...
- 【web实战-业务逻辑】评论点赞逻辑
前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...
- 第一章 c语言概述程序逻辑,第一章 程序逻辑与C语言概述
1.第一章 程序逻辑与C语言概述,1.1 C语言概述1.2 程序和程序逻辑,第一章 程序逻辑与C语言概述,1.1 C语言概述,[学习目标]了解C语言工作机制掌握C语言程序的的基本构成了解C语言程序的编 ...
- R语言的逻辑与、逻辑或和元素逻辑与、元素逻辑或的区别
版权声明:转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/116463648 参阅 ...
最新文章
- SLAM前端中的视觉里程计和回环检测
- 联通电子渠道的差异化思维
- java算法题常用到的一些api,含面试题+答案
- 我的第一个用Hibernate框架写的小例子
- HDU 3874 Necklace (数状数组)
- 激活层是每一层都有吗_89小户型复式这样装,每一层都设计得很棒,完工后秒变小区样板间,邻居前来取经...
- eclipse 断点调试快捷键
- mysql 监控 开源_强大的开源企业级数据库监控利器Lepus
- PHP实现上传文件并存进数据库的方法
- python源码中的学习笔记_第7章_字符串
- mysql safe 模式_MYSQL的安全模式:sql_safe_updates介绍
- python整数运算定律_PHP 操作redis 详细讲解
- 编写第一个 Hibernate 例子
- DirectX修复工具使用技巧之三——命令行与配置文件参数介绍
- CAPL基础知识学习
- Python绘图 好用的网址
- 面向对象课程 第三次博客总结
- ads1258_ADS1258:高精度多通道模/数转换芯片
- Integrate就医服务平台
- 传感器i2c与arduino连接_如何在两个Arduino开发板之间使用I2C总线进行通信
热门文章
- java里dialect_java – Hibernate:没有设置方言.设置属性hibernate.dialect
- java反射的作用于原理、初学者
- C#之敲击回车键触发Button的Click事件
- 判断模式分解是否为无损连接的方法
- java 刷新jtextarea,SwingPropertyChangeSupport动态更新JTextArea
- how to search books in gitbook
- 损失函数——KL散度(Kullback-Leibler Divergence,KL Divergence)
- freemarker生成word不显示图片
- 小福利,用Excel VBA编程制作一个变色小游戏
- socat 虚拟串口在 linux OS中如何实现?