【小知识】黑白分明的计算机世界——关系表达式,逻辑表达式和三目运算符

news2024/11/16 15:43:20

【小知识】黑白分明的计算机世界——关系表达式,逻辑表达式和三目运算符

  • 1.逻辑变量
  • 2.关系表达式和逻辑表达式
    • 2.1.关系表达式
      • 2.1.1.例题——a和b的关系
      • 2.1.2.浮点数精度误差
    • 2.2.逻辑表达式
      • 2.2.1.常见的逻辑运算符
      • 2.2.2.优先级
      • 2.2.3.注意事项
        • 2.2.3.1.在写逻辑表达式的时候,一般会用括号括起来,这样就能显得主次分明。
        • 2.2.3.2.【新手必看】==千万不要打成=。这是99%新手都会犯的错误。
        • 2.2.3.3.严格来说异或^是位运算符,但经常用来做逻辑运算,这里就一起讲了。
    • 2.3.数的性质
      • 2.3.1.题目描述
      • 2.3.2.输入格式
      • 2.3.3.输出格式
      • 2.3.4.样例 #1
        • 2.3.4.1.样例输入 #1
        • 2.3.4.2样例输出 #1
  • 3.三目运算符

1.逻辑变量

    在现实世界中,有些事情是不能直接分辨真假的。但计算机中的真假是黑白分明的。

    在C++中,用0来表示false,即假。用非零数(通常为1)来表示true,即真。用bool类型的变量来储存真和假的信息。比如:

#include<iostream>
#include<cstdio>
using namespace std;
int main(){ 
    bool flag=true;//创建一个逻辑变量flag,并将其初始化为true
    printf("%d\n",flag);//可以将逻辑变量看成整数来使用
    flag=0;//可以直接用0和1来代替true和false
    printf("%d\n",flag);
    int i=10+flag;
    printf("%d\n",i);//flag也可以当做整数参与运算
    return 0;
}

输出:

1
0
10

2.关系表达式和逻辑表达式

2.1.关系表达式

2.1.1.例题——a和b的关系

输入两个数a和b,我们想知道:
1)a是否小于b
2)b是否大于等于a
3)a是否等于0
输出0和1即可。

想要解决这个问题,我们首先要知道常见的关系表达式

符号读作作用
>大于左边的数大于右边的数就返回真,否则返回假。
<小于左边的数小于右边的数就返回真,否则返回假。
==(不是=)等于两边的数相等就返回真,否则返回假。
>=大于等于左边的数大于或等于右边的数就返回真,否则返回假。
<=小于等于左边的数小于或等于右边的数就返回真,否则返回假。

程序示例:

#include<iostream>
using namespace std;
int main(){
    int a,b;
    cin>>a>>b;
    cout<<(a<b)<<endl;
    cout<<(b>=a)<<endl;
    cout<<(a==0)<<endl;
    return 0;
}

注意:没有括号会报错。

2.1.2.浮点数精度误差

    计算机在储存浮点数的时候,一般都会有精度误差。所以一般不用 == 来判断两个浮点数是否相等。
    正确的方式:比较这两个数的差值是否小于一定程度
    比如:假设 fabs(a-b)<1e-6 成立,就可以认为浮点数 a 和 b 相等。
程序示例:

#include<iostream>
#include<cmath>
using namespace std;
int main(){
    double a,b;
    cin>>a>>b;
    bool p=fabs(a-b)<1e-6;//将表达式的返回值当做初始值赋给p
    cout<<p;
    return 0;
}

注意:这个差值要根据实际情况而定。

2.2.逻辑表达式

2.2.1.常见的逻辑运算符

    逻辑表达式,就是把多个条件复合成一个条件进行判断。
    常见的逻辑运算符有以下几个。

逻辑与:a&&b。当两边条件同时为真时返回1,否则返回0。
逻辑或:a||b。当两边条件有一个以上为真时返回1,否则返回0。
异或:a^b。当两边条件只有一个为真时返回1,否则返回0。
逻辑非:!a。当a为假时返回1,否则返回0。

具体0-1真值如下:

逻辑与&&

左值右值经过与运算之后的结果
000
010
100
111

逻辑或||

左值右值经过或运算之后的结果
000
011
101
111

异或^

左值右值经过异或运算之后的结果
000
011
101
110

逻辑非!

经过非运算之后的结果
01
10

2.2.2.优先级

优先级列表(从高到低,即第一个最高,接下来的优先级依次递减)

符号
( 、) (左右括号)
!、- (负号)、 ++、 – (现在还没学,不用着急,先记住)
*、 /、 %
+、 -(加减运算)
<<、 >>(左右位移)(跟上面的一样,现在还没学,先记住)
<、 >、 <=、 >=
==、!=
逻辑与(&&)
逻辑或(表格里打不出来)

例题:数的性质 - 洛谷

2.2.3.注意事项

2.2.3.1.在写逻辑表达式的时候,一般会用括号括起来,这样就能显得主次分明。
2.2.3.2.【新手必看】==千万不要打成=。这是99%新手都会犯的错误。
2.2.3.3.严格来说异或^是位运算符,但经常用来做逻辑运算,这里就一起讲了。

2.3.数的性质

2.3.1.题目描述

一些整数可能拥有以下的性质:

  • 性质 1:是偶数;
  • 性质 2:大于 4 4 4 且不大于 12 12 12

小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;小 B 喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 x x x,请问他们是否喜欢这个整数?

2.3.2.输入格式

输入一个整数 x ( 0 ≤ x ≤ 1000 ) x(0\le x \le 1000) x(0x1000)

2.3.3.输出格式

输出这 4 4 4 个人是否喜欢这个数字,如果喜欢则输出 1,否则输出 0,用空格分隔。输出顺序为:小 A、Uim、小 B、正妹。

2.3.4.样例 #1

2.3.4.1.样例输入 #1
12
2.3.4.2样例输出 #1
1 1 0 0

程序示例:

#include<iostream>
using namespace std;
int main(){
    int x;
    cin>>x;
    bool p1= x%2==0;//x是否符合性质1
    bool p2= x>4&&x<=12;//x是否符合性质2
    cout<<(p1&&p2)<<" ";//两种情况都符合就输出1
    cout<<(p1||p2)<<" ";//至少有一种情况符合就输出1
    cout<<(p1^p2)<<" ";//只有一种情况符合就输出1
    cout<<(!p1&&!p2)<<" ";//两种情况都不符合就输出1
    return 0;
}

3.三目运算符

    三目运算符又被称为问号表达式。是C++中唯一一个具有三个操作对象的运算符。其基本语法如下:
(p1)? p2 :p3;//空格和括号不一定要打
例如:
实现一功能,输入一整数x,求它是否是偶数。是就输出"even",否则输出"odd"。

代码示例:

#include<iostream>
using namespace std;
int main(){
    int x;
    cin>>x;
    x%2==0?cout<<"even":cout<<"odd";
    cout<<endl;
    //不可以采用cout<<(x%2==0)?"even":"odd";这种写法。不然会直接输出x%2==0的结果。
    return 0;
}

喜欢就订阅此专辑吧!

【蓝胖子编程教育简介】
蓝胖子编程教育,是一家面向青少年的编程教育平台。平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。

欢迎扫码关注蓝胖子编程教育
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

书生大模型学习笔记 - 连接云端开发机

申请InternStudio开发机&#xff1a; 这里进去报名参加实战营即可获取 书生大模型实战营 InternStudio平台 创建开发机 SSH连接开发机&#xff1a; SSH免密码登录 本地创建SSH密钥 ssh-keygen -t rsa打开以下文件获取公钥 ~/.ssh/id_rsa.pub去InternStudio添加公钥 …

OPenCV高级编程——OpenCV常见的API及绘图知识详解

目录 引言 一、Mat类详解 1. Mat类的基本结构 2. Mat类的数据类型 3. Mat类的创建与初始化 4. Mat类的使用技巧 二、OpenCV核心功能模块 1. 基本的图像读取与显示 2. 图像的保存 3. 矩阵操作 4. 等待键盘输入与销毁窗口 5. 命名窗口 三、图像处理模块 1. 色彩空间…

一个简单的车辆目标检测和跟踪示例

点击下方卡片&#xff0c;关注“小白玩转Python”公众号 介绍 目标检测&#xff1a;目标检测是指在图像或视频帧中识别和定位特定目标&#xff0c;并使用边界框来确定它们的位置。YOLO&#xff08;You Only Look Once&#xff09;是一种高效的单阶段目标检测算法&#xff0c;以…

普冉Puya 超高性价比M0 MCU 工业电子解决方案

普冉半导体(上海)股份有限公司成立于2016年&#xff0c;总部位于上海张江高科&#xff0c;公司目前主要产品包括微控制器芯片、非易失性存储器芯片及模拟产品。产品广泛应用于物联网、智能手机及周边、可穿戴、服务器、光模块、工业控制、汽车电子、安防等领域。公司在深圳、韩…

Spring Boot集成udp通讯

Spring Boot集成udp通讯 加入依赖编辑配置文件配置相关属性具体业务类客户端调试 加入依赖 <!--加入UDP通信所需依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-integration</artifactId&…

GD32 MCU电源复位和系统复位有什么区别

GD32 MCU的复位分为电源复位和系统复位&#xff0c;电源复位又称为冷复位&#xff0c;相较于系统复位&#xff0c;上电复位更彻底&#xff0c;下面为大家详细介绍上电复位和系统复位的实现以及区别。 电源复位包括上电/掉电复位或者从standby模式唤醒产生的复位&#xff0c;电…

HarmonyOS NEXT——奇妙的调用方式

注解调用一句话总结Extend抽取特定组件样式、事件&#xff0c;可以传递参数Style抽取公共样式、事件&#xff0c;不可以传递参数Builder抽取结构、样式、事件&#xff0c;可以传递参数BuilderParams自定义组件中传递UI组件多个BuilderParams自定义组件中传递多个UI组件 Extend…

echarts加载区域地图,并标注点

效果如下&#xff0c;加载了南海区域的地图&#xff0c;并标注几个气象站点&#xff1b; 1、下载区域地图的JSON&#xff1a;DataV.GeoAtlas地理小工具系列 新建nanhai.json&#xff0c;把下载的JSON数据放进来 说明&#xff1a;如果第二步不打勾&#xff0c;只显示省的名字&a…

全新微软语音合成网页版源码,短视频影视解说配音网页版系统-仿真人语音

源码介绍 最新微软语音合成网页版源码&#xff0c;可以用来给影视解说和短视频配音。它是TTS文本转语言&#xff0c;API接口和PHP源码。 这个微软语音合成接口的源码&#xff0c;超级简单&#xff0c;就几个文件搞定。用的是官方的API&#xff0c;试过了&#xff0c;合成速度…

InnoDB存储引擎(1)

InnoDB存储引擎的优点 InnoDB在设计时考虑到了处理大数据量时的性能&#xff0c;支持事务&#xff0c;回滚和崩溃修复的能力&#xff0c;通过多版本并发控制来减少锁定(降低了锁的争用),同时还支持外键的约束&#xff1b;通过缓冲池在内存中缓存数据来提高查询的性能&#xff…

内容营销专家刘鑫炜:驾驭AI为品牌服务,从成为卓越投喂师开始!

在这个信息爆炸、注意力稀缺的时代&#xff0c;品牌内容营销已成为企业连接消费者、塑造品牌形象的关键途径。而人工智能&#xff08;AI&#xff09;技术的融入&#xff0c;更是为内容营销带来了前所未有的变革与机遇。然而&#xff0c;要让AI真正为你的品牌内容营销高效服务&a…

vue3后台管理系统 vue3+vite+pinia+element-plus+axios上

前言 项目安装与启动 使用vite作为项目脚手架 # pnpm pnpm create vite my-vue-app --template vue安装相应依赖 # sass pnpm i sass # vue-router pnpm i vue-router # element-plus pnpm i element-plus # element-plus/icon pnpm i element-plus/icons-vue安装element-…

WebWorker处理百万数据

Home.vue <template><el-input v-model"Val" style"width: 400px"></el-input><el-button click"imgHandler">过滤</el-button><hr /><canvas id"myCanvas" width"500" height&quo…

不懂就问:EI论文真的很水吗?如何快速水一篇EI论文呢?

最近在有刷到一个这样的话题&#xff0c;发表一篇EI论文容易吗&#xff1f; 很多人可能会觉得EI没有什么用&#xff0c;但其实EI的含金量也很高。 比如目前有很多单位的老师在评选职称的时候&#xff0c;EI会议中的iee系列依然比发表一篇北大核心还高。 那发表EI论文到底容…

springboot家校共育平台-计算机毕业设计源码54235

摘 要 采用高效的SpringBoot框架&#xff0c;家校共育平台为家长与教师提供了便捷的沟通渠道。该平台整合了丰富的教育资源&#xff0c;实现了家校之间的即时信息互通&#xff0c;从而助力协同教育。 为进一步方便用户访问和使用&#xff0c;平台与微信小程序进行了深度整合。家…

WPF ViewBox,Canva之SVG

ViewBox Viewbox是WPF中的一个内容控件&#xff0c;它可以自动调整其内部子元素的大小以适应其自身的尺寸。Viewbox通过保持子元素原有的宽高比&#xff0c;对内容进行均匀的缩放&#xff0c;使其完全填充控件的空间。 Stretch Stretch属性决定了Viewbox如何缩放其内容。它可…

IMU用于野外动作质量评估

近期&#xff0c;来自日本的研究者开发出一个名为MMW-AQA的创新性数据集&#xff0c;该数据集融合了多种传感器信息&#xff0c;专门设计用于用于客观评价人类在复杂环境下的动作质量&#xff0c;这一突破为运动分析和智能安全系统的优化提供了新的可能。 MMW-AQA数据集结合了毫…

MVC软件设计模式及QT的MVC架构

目录 引言 一、MVC思想介绍 1.1 MCV模型概述 1.2 Excel的处理数据 1.3 MVC模式的优势 二、QT中的MVC 1.1 模型&#xff08;Model&#xff09; 1. QAbstractItemModel 2. QStringListModel 3. QStandardItemModel 4. QSqlTableModel 和 QSqlQueryModel 5. QAbstract…

为什么建议使用 for…of 循环而不是 foreach 循环呢

在 JavaScript 和 TypeScript 的世界里&#xff0c;遍历数组是一项常见任务。许多开发者因为 .forEach 的简单和熟悉而习惯使用它。 然而&#xff0c;有一个更强大且更灵活的替代方案&#xff1a;for…of 循环。&#x1f52e; 本文将深入探讨为什么你应该考虑切换到 for…of 以…

JAVA文档注释

文档注释&#xff0c;它以 /** 开始&#xff0c;以 */ 结束。 你可以使用 javadoc 工具软件来生成信息&#xff0c;并输出到 HTML 文件中。 文档注释&#xff0c;使你更加方便的记录你的程序信息。 javadoc标签 在开始的 /** 之后&#xff0c;第一行或几行是关于类、变量和方…