【带头学C++】----- 1.基础知识 ---- 1.21.23.9 位运算符的综合应用

2023-10-25 21:04

本文主要是介绍【带头学C++】----- 1.基础知识 ---- 1.21.23.9 位运算符的综合应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        最近做任务,公司项目比较重,赶上1024的活动流量券任务,内容治疗略微有一些杂乱,后期会把专栏目录重新搞一下,内容我是融合了很多课程和书籍包含ai的一些理解,我整理和增加了自己的见解和代码贴图,后续有需要代码的可以私聊我。免费赠送(专栏整理完了再发哈)

1.23.9 位运算符的综合应用

本章主要对上一篇文章作为补充,补充一下关于位运算符的一些综合应用。同时补充一下关于三目运算符、运算符的优先级、以及重要的自增、自减操作。

上图引用千锋教育C++基础班课程笔记 

1.23.10 三目运算符 ?:

表达式1?值1:值2
如果表达式1为真整个表达式的值为值1

如果表达式1为假 整个表达式的值为值2

例如:

    int age = 20;string result = (age >= 18) ? "成年人" : "未成年人";cout << "年龄:" << age << endl;cout << "身份:" << result << endl;

 其实相当于if-else,经常用于比较简单的比较条件,省去if-else的大块语句

 

注意特殊的:

test08里面我们可以看到data1的值是10,data2是原始是20,最后data2的值发生了改变。

实际上是因为在给 (data1>data2?data1:data2) 赋值时,根据条件 (data1>data2) 的判断结果,如果为真,则将 data1 的值赋给整个表达式,如果为假,则将 data2 的值赋给整个表达式。

在这个例子中,(data1>data2?data1:data2) 的值为 data2,因为 data1 的值并没有大于 data2。所以 data2 的值被赋为了 200

因此,最后的输出结果中,data1 的值保持为原来的 10,而 data2 的值被赋为了 200

 

1.23.11 运算符优先级

 1.图标展示运算符号的优先级

 

图示在C++primer一书中。 

 

 

 

1.23.12 自增自减

1.基础认识++(自增加1)和--(自减少1)符号

在C++中,递增运算符(++)和递减运算符(--)提供了一种便捷的方式来对对象进行加1和减1操作。

递增运算符有两种形式:前置版本和后置版本。前置递增运算符将运算对象加1,并返回修改后的对象本身作为求值结果。例如,++x 将会将变量 x 的值加1,并返回加1后的值。

后置递增运算符也将运算对象加1,但是返回的是运算对象改变之前的值的副本。例如,x++ 将会将变量 x 的值加1,但返回的是加1之前的值。

递减运算符的工作原理与递增运算符类似,只是将对象减1。

#include <iostream>
using namespace std;int main() {int x = 5;int y = 10;// 前置递增运算符++x; // x 增加1,现在 x 的值为 6cout << "x = " << x << endl;// 后置递增运算符y++; // y 增加1,但返回的是加1之前的值,现在 y 的值为 11cout << "y = " << y << endl;// 前置递减运算符--x; // x 减少1,现在 x 的值为 5cout << "x = " << x << endl;// 后置递减运算符y--; // y 减少1,但返回的是减少之前的值,现在 y 的值为 10cout << "y = " << y << endl;return 0;
}

2.在一条语句中混用解引用和递增运算符 

     如果我们想在一条复合表达式中既将变量加1或减1又能使用它原来的值,这时就可以使用递增和递减运算符的后置版本。

这里引用了C++primer5版本里面对改问题解释 

 

这篇关于【带头学C++】----- 1.基础知识 ---- 1.21.23.9 位运算符的综合应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/285179

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

计组基础知识

操作系统的特征 并发共享虚拟异步 操作系统的功能 1、资源分配,资源回收硬件资源 CPU、内存、硬盘、I/O设备。2、为应⽤程序提供服务操作系统将硬件资源的操作封装起来,提供相对统⼀的接⼝(系统调⽤)供开发者调⽤。3、管理应⽤程序即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。4、操作系统内核的功能(1)进程调度能⼒: 管理进程、线

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�