首页 > 其他分享 >c语言-逻辑运算符和逻辑表达式

c语言-逻辑运算符和逻辑表达式

时间:2024-07-16 20:54:54浏览次数:17  
标签:逻辑 运算 数值 运算符 && 表达式

一 认识三个逻辑运算符

        1.&& “逻辑与” 一假则假  2.|| “逻辑或” 一真则真 3.! “逻辑非” 

逻辑与和逻辑或都是双目运算符,要求两个操作数;逻辑非为单目运算符

优先级为 !> 算术运算符 > 关系运算符 > &&和||  > 赋值运算符 

 运算符可以通过括号展开或收缩 如下

( a > b ) && ( x > y ) = a > b && x > y

二 逻辑表达式 

        逻辑表达式的值应该是一个逻辑量“ 真”或“假”。C语言编译系统在表示逻 辑 运 算 结 果 时 ,用 数 值 1 代 表 “ 真 ” , 用 0代 表 “ 假 ” , 但 在 判 断 一 个 量 是 否 为“ 真 ” 时 ,以 0 代 表 “ 假”,以非0代表“真”。即将一个非零的数值认作为“真”。例如:
(1)若a= 4,则!a的值为0。因为a的值为非0.被认作“真”,对它进行“非运算”,得 “假”。“假”以0 代表。
( 2 ) 若 a = 4 , b = 5 • 则 a && b 的 值 为 1 。 因 为 a 和b 上 均 为 非 0 。被 认 为 是 “ 真 ” ,因 此 a &&b的 值 也 为“ 真 ” ,值 为 1 。
( 3 )a 和 b 值 分 别 为 4 和 5 ,a || b 的 值 为 1 。
( 4 ) a 和 b 值 分 别 为 4 和 5 , !a l l b 的 值 为 1 。
(5 ) 4 && 0 || 2的 值 为 1 。

        通过这几个例子可以看出,由系统给出的逻辑运算结果不是0,就是1, 不可能是其他数值。而在逻辑表达式中作为参加逻辑运算的运算对象可以是0(“ 假”)或任何非0的数值 〈按“ 真” 对待)。如果在 一个表达式中不同位置上出现数值,应区分哪些是作为数值运算或关系运算的对象,哪些作为逻辑运算的对象。例如:
5> 3  && 8 < 4 - !0
        表达式自左至右扫描求解。首先处理“5>3”(因为关系运算符优先于逻辑运算符 &&)。在关系运算符>两侧的5和3作为数值参加关系运算,“5 >3”的值为1(代表真)。 再进行“1&.&.8<4- !0”的运算,8的左侧为“&.&”,右侧为“<”运算符,根据优先规则,应 先进行“<”的运算,即先进行“8<4- !0”的运算。现在4的左侧为“<”,右侧为“一”运算 符,而“一”优先于“<”,因此应先进行“4一10”的运算,由于“! ”的级别最高,因此先进行“!0” 的 运 算 , 得 到 结 果 1 。 然 后 进 行 “ 4 一 1 ” 的 运 算 ,得 到 结 果 3 , 再 进 行 “ 8 < 3 ” 的 运 算 ,得 0 ,最 后 进行“1 && 0”的运算, 结果为0。
        实 际 上 ,逻 辑 运 算 符 两 侧 的 运 算 对 象 不 但 可 以 是 0 和 1 ,或 者 是  0 和 非 0 的 整 数 ,也 可 以是字符型、浮点型、枚举型或指针型的纯量型数据。系统最终以0和非0来判定它们属于 “ 真 ” 或 “ 假 ” 。 例 如 : ’ c’ & &  ’ d ” 的 值 为 1 ( 因 为 ’ c’ 和 ’ d ' 的 A S C I I 值 都 不 为 0 . 按 “ 真 ” 处 理 ) 。 所以1 && 1的值为1.

由此我们可以和之前的if语句结合

if(x!=0)//如果x不等于0,执行。
if(x) //表达式是变量,如果x不等于0,则条件判断结果为真,执行。
if(1)//表达式是非零整数,条件判断结果为真,执行。
if(0)//表达式为0,判断结果为假不执行。
if(x+3.5)//若x+3.5不等于0,判断结果为真,执行

进一步实践 来判断是否闰年

if ( year % 4 !=0 ) || (year%100 == 0 && year %400!=0)//if中用==

标签:逻辑,运算,数值,运算符,&&,表达式
From: https://blog.csdn.net/2302_80782671/article/details/140475530

相关文章

  • 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、
    全文链接:http://tecdat.cn/?p=27384最近我们被客户要求撰写关于葡萄酒的研究报告,包括一些图形和统计输出。在本文中,数据包含有关葡萄牙“VinhoVerde”葡萄酒的信息介绍该数据集(查看文末了解数据获取方式)有1599个观测值和12个变量,分别是固定酸度、挥发性酸度、柠檬酸、残糖、......
  • 逻辑回归(机器学习)
    上一题篇文章写了线性回归以及梯度下降法,这篇文章讲一下逻辑回归。虽然它叫逻辑回归,但是它并非回归模型,而是一个分类模型。那么回归和分类有什么区别呢?在上一篇文章中,我们以住房各特征预测了房价中位数。这个是给定数据,预测一个连续的数据。而分类呢?还是举出上面的例子,只不过这......
  • 代码随想录算法训练营第十一天 | 150. 逆波兰表达式求值、 239. 滑动窗口最大值、347.
    150.逆波兰表达式求值题目:.-力扣(LeetCode)思路:遇到数字进栈,遇到符号出栈运算。代码:classSolution{public:intevalRPN(vector<string>&tokens){stack<longlong>sta;for(strings:tokens){if(s=="+"||s=="-"||s=="*"......
  • 数电_逻辑函数基础
    一逻辑函数的两种标准形式1最小项min变量之积,n个变量对应2的n次方个最小项性质输入变量的任何取值下必有一个最小项,而且仅有一个最小项值为1。全体最小项或为1。任意2个最小项相与为0。具有相邻性的两个最小项相或可以消去一对因子合并为一项。2最大项Min变量之和,n......
  • 类模板案例——数组类封装(vector<>的逻辑代码)
    .hpp文件#pragma#include<iostream>usingnamespacestd;template<classT>classMy_arry{public: My_arry(intcapacity)//赋初值 { this->m_capacity=capacity;//容量 this->m_Arry_size=0;//大小 this->m_Arry_Addres=newT[capacity];......
  • SQL Server数据库出现逻辑错误的数据恢复
    一、常见逻辑错误类型校验和不正确(ChecksumError):这类错误通常表示数据库页中的数据在写入磁盘时与读取时不一致。可能由硬件故障、驱动程序问题或数据库文件损坏导致。逻辑I/O错误(如Error824):表示从磁盘成功读取了页面,但页面本身存在错误。这通常是由于数据库文件损坏或I/O......
  • SpringAOP中的切点表达式Pointcut详解
    https://www.jb51.net/program/293999439.htm 一、概述SpringAOP只支持SpringBean的方法切入,所以切点表达式只会匹配Bean类中的方法。二、切点表达式配置1.内置配置定义切面通知时,在 @Before 或 @AfterReturning 等通知注解中指定表达式。12345......
  • QRegExp类正则表达式
    一、QRegExp简介QRegExp类是QT中的正则表达式,由表达式、量词和断言组成。主要有四个作用:有效性检查、查找、替换、字符串分割,具体如下。(1)有效性检查,检查字符串是否满足一定要求。(2)查找,提供了比QString类更强大的匹配模型。(3)替换,对字符串内符合或不符合要求的字符串进行替换。......
  • 正则表达式
    前言        正则表达式,在搜索和操作文本字符串,特别是在处理文本文件时,非常强大。一行正则表达式可以很容易地取代几十行编程代码。所有脚本语言(如Perl、Python、PHP和JavaScript)、通用编程语言(如Java)甚至用于搜索文本的Word等文字处理器都支持Regex。开始使用正则表......
  • C/C++ 逗号表达式的注意事项
    在C和C++中,逗号表达式是一种使用逗号运算符,分隔的表达式序列。逗号运算符用于顺序执行其操作数,并返回最后一个操作数的结果。尽管逗号表达式在某些情况下很有用,但它们也需要注意一些重要的细节和潜在的问题。1.逗号表达式的定义和用法逗号表达式由一系列表达式组成,这些表......