C/C++基础----运算符

算数运算符

运算符 描述 例子
+ 两个数字相加 两个变量a + b得到两个变量之和
- 两个数字相减 -
* 两个数字相乘 -
/ 两个数字相除 -
% 两个数字相除后取余数 8 % 3 = 2
-- 一个数字递减 变量a:a-- 、--a
++ 一个数字递增 变量a: a++ 、 ++a
  • 其中递增和递减运算符在左边和在右边效果不一样
  • 单独存在时都是递增和递减,如果和别的组合运算就会不一样
  • 例如:
    #include <iostream>using namespace std;int main() {int a = 5;int b = 3;int c = a + ++b;// 因为之前b+了1,再改回来b = 3;int d = a + b++;cout << "c的值,先++" << c << endl;cout << "d的值,后++" << d << endl;return 0;
    }
    
    在这里插入图片描述
  • a + b++是先用a+b赋值给c,然后再把b自增1
  • a + ++b是先把b自增1然后再把a+b赋值给d

逻辑运算符

  • 表达式常用于判断
运算符名称描述
&&逻辑与a && b 其中都为true时结果为true
||逻辑或a || b 其中只有一个为true结果为true,都为false结果为false
!逻辑非!a 如果a为flase,则结果为true,如果a为true结果为false

关系运算符

  • 常用于判断
  • 两个数字符合表达式则返回true,不符合则返回false
运算符名称
<小于
>大于
==等于
>=大于等于
<=小于等于
!=不等于

位运算符

  • 位运算符就是操作二进制上的位
运算符描述
&按位进行与操作
|按位进行或操作
~按位进行取反操作
^按位进行异或操作
<<按位进行左移
>>按位进行右移
  • 例子&运算:例如我们有两个变量a和b分别为60和13

    • bitset<32>#include <bitset>导入
    • 原用法为std::bitset<32> 表示把十进制转为32位的二进制表示
    • 因为前面定义了命名空间所以省略了std::
    • bitset<32> .to_string()方法把二进制转为二进制字符串
    • stoi(binary_c.to_string(), nullptr, 2)把二进制字符串转为十进制数字
    #include <iostream>
    #include <bitset>using namespace std;int main() {int a = 60;int b = 13;// 十进制转为二进制表示bitset<32> binary_a(a);bitset<32> binary_b(b);cout << "a的二进制表示:" << binary_a << endl;cout << "b的二进制表示:" << binary_b << endl;// 按位与操作之后的二进制数据bitset<32> binary_c = binary_a & binary_b;// 二进制数据转为二进制字符串再转为十进制int c = stoi(binary_c.to_string(), nullptr, 2);cout << "a & b的二进制表示:" << binary_c << endl;cout << "a & b的十进制表示:" << c << endl;return 0;
    }
    

    在这里插入图片描述

    • 根据结果可以看到60 & 13的结果是12
    • 是根据二进制的位来进行运算的
      在这里插入图片描述
  • 例子:|运算

    在这里插入图片描述

  • 例子:~取反运算

    #include <iostream>
    #include <bitset>using namespace std;int main() {int a = 60;int b = ~a;bitset<32> binary_a(a);bitset<32> binary_b(b);cout << "a的二进制表示:" << binary_a << endl;cout << "~a的二进制表示:" << binary_b << endl;cout << "~a的十进制表示:" << b << endl;return 0;
    }
    

    在这里插入图片描述

  • 例子: ^异或运算

    • 比较两个位的不同,如果a和b相同结果则为0,不相同结果为1
      在这里插入图片描述
  • 例子:<<左移运算

    #include <iostream>
    #include <bitset>using namespace std;int main() {int a = 60;int b = a << 2;bitset<32> binary_a(a);bitset<32> binary_b(b);cout << "a的二进制表示:" << binary_a << endl;cout << "a << 2的二进制表示:" << binary_b << endl;cout << "a << 2的十进制表示:" << b << endl;return 0;
    }
    

    在这里插入图片描述

  • 例子:>>右移运算在这里插入图片描述


赋值运算符

  • 一边赋值一边运算
  • 之前的运算符除逻辑运算符和关系运算符外都可以一边赋值一边运算
  • 例:a+=1 就是 a = a + 1; a &= 10 就是 a = a & 10

其他

  • sizeof 运算符返回大小
#include <iostream>using namespace std;int main() {int a = 1;short b= 1;long c  = 1;long long d = 1;double e = 10.2;cout << sizeof a << endl;cout << sizeof b << endl;cout << sizeof c << endl;cout << sizeof d << endl;cout << sizeof e << endl;cout << sizeof(int) << endl;return 0;
}
  • int为4个字节
  • short为2个字节
  • long为4个字节
  • long long为8个字节
  • double为8个字节
  • ……
    在这里插入图片描述

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

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

相关文章

VSCode中调试C++程序

目录 一、准备工作&#xff1a;安装插件 1、C/C插件 ​编辑 2、CMake插件 3、CMake tool插件 二、调试过程 1、debug 2、打断点 3、调C/C文件 每次重新调试的时候都忘了具体步骤&#xff0c;直接给自己写个备忘录好了。 一、准备工作&#xff1a;安装插件 1、C/C插件…

zabbix“专家坐诊”第236期问答

问题一 Q&#xff1a;我的trap里已经可以收到信息了&#xff0c;后续要怎么创建监控项呀&#xff1f; A&#xff1a;参考&#xff1a; 问题二 Q&#xff1a;snmp和snmp trap咋搞&#xff1f; A&#xff1a;你指的是如何开启这些协议还是如何做监控项&#xff1f; Q&#xff1…

Opentelemetry——Observability Primer

Observability Primer 可观测性入门 Core observability concepts. 可观测性核心概念。 What is Observability? 什么是可观测性&#xff1f; Observability lets us understand a system from the outside, by letting us ask questions about that system without know…

Java——数组练习

目录 一.数组转字符串 二.数组拷贝 三.求数组中元素的平均值 四.查找数组中指定元素(顺序查找) 五.查找数组中指定元素(二分查找) 六.数组排序(冒泡排序) 七.数组逆序 一.数组转字符串 代码示例&#xff1a; import java.util.Arrays int[] arr {1,2,3,4,5,6}; String…

数据分析——数据规范化

数据规范化是数据分析中的一个重要步骤&#xff0c;其目的在于确保数据的一致性和可比性&#xff0c;提高数据质量和分析结果的准确性。以下是一些数据规范化的常见方法和技术&#xff1a; 数据清洗&#xff1a;此步骤主要清除数据中的重复项、空格、格式错误等&#xff0c;确…

批归一化(BN)在神经网络中的作用与原理

文章目录 1. 批归一化&#xff08;BN&#xff09;在神经网络中的作用与原理1.1 作用与优势1.2 原理与推导 2. 将BN应用于神经网络的方法2.1 训练时的BN 2. 将BN应用于神经网络的方法2.1 训练时的BN2.2 测试时的BN代码示例&#xff08;Python&#xff09;&#xff1a; 3. BN的优…

编程规范(保姆级教程)

文章目录 为什么需要编程规范&#xff1f;&#x1f4a1;代码检测工具 ESLint&#x1f4a1;代码格式化 Prettier&#x1f4a1;ESLint 与 Prettier 配合解决代码格式问题eslint支持ts约定式提交规范Commitizen助你规范化提交代码什么是 Git Hooks使用 husky commitlint 检查提交…

探索设计模式的魅力:MVVM模式在AI大模型领域的创新应用-打破传统,迎接智能未来

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 MVVM模式在AI大模型领域的创新应用-打破传统迎接智能未来 &#x1f680; “在人工智能的领域里&a…

【Entity Framework】如何使用EF中的生成值

【Entity Framework】如何使用EF中的生成值 文章目录 【Entity Framework】如何使用EF中的生成值一、概述二、默认值三、计算列四、设置主键五、显示配置值生成六、设置日期/时间值生成6.1 创建时间戳6.2 更新时间戳 七、替代值生成八、无值生成九、总结 一、概述 数据库列的值…

DHCP抓包分析

DHCP动态路由配置协议&#xff0c;是C/S架构&#xff0c;由DHCP服务器为客户端动态分配IP信息。 DHCP客户端首次接入网络数据交互过程&#xff1a; 如何解决IP地址的冲突&#xff1a; ▫ DHCP服务器端&#xff1a;收到DHCP DISCOVER报文时&#xff0c;给客户端分配IP地址前会发…

【C++第三阶段】stackqueue容器

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 stack容器queue容器 stack容器 是什么&#xff1f;功能是什么&#xff1f;常用接口是什么&#xff1f;局限性有哪些&#xff1f;优势又有哪些&#xff1f; 栈容器&#xff0c;先进…

error-ckeditor-duplicated-modules 在vue中引入ckeditor插件报错

报错原因&#xff1a; 由于集成了webpack&#xff0c;统一引入了ckeditor &#xff0c;但是页面里面我们又通过import引入了一遍&#xff0c;所以导致引入重复了 解决&#xff1a; ckeditor本身除了基本的一些功能&#xff0c;其他基本全靠插件引入&#xff0c;所以想加功能必…

谷歌推出Vids:AI驱动的PowerPoint,重新定义演示文稿的未来|TodayAI

不管你喜不喜欢&#xff0c;找到集成了AI技术以简化常见任务的工具和服务变得越来越容易。谷歌的应用套件迅速成为了一个集成了Gemini AI的产品中心&#xff0c;这些产品可以在工作场所到你的家中的任何地方使用。例如&#xff0c;如果在工作中做演示一直是你的痛点&#xff0c…

git操作码云(gitee)创建仓库到上传到远程仓库

想必有的小伙伴在为上传到码云远程仓库而感到烦恼吧&#xff01;本篇为大家详细讲解实现过程&#xff0c;跟着我的步伐一步一步来。 我就当大家已经注册好了码云 一、在码云上需要的操作 接下来我们需要使用到 git 了 二、git 上的操作 到了咋们的git了&#xff0c;开整 首…

外包干了3天,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

Terraform 状态不同步处理

背景 在使用 Terraform 创建 TencentCloud TKE 的时候&#xff0c;手贱把 node pool 删掉了。导致执行 destroy, plan 都会报错。 │ Error: [TencentCloudSDKError] CodeInternalError.UnexpectedInternal, Messagerelated node pool query err(get node pool failed: [E501…

Python如何安装第三方模块

cmd窗口中使用pip install命令安装 1、键盘按下win R&#xff0c;然后在输入框中输入cmd&#xff0c;回车&#xff0c;就打开了cmd窗口。 下图的运行框会出现到屏幕左下角。 2、输入下面的命令&#xff0c;回车即可。 pip install xxx # xxx为要安装的模块名 如图所示&…

【13137】基于TQM的人力资源管理

目录 1.单选题 2.多选题 3.名词解释题 4.简答题 1.单选题

中通科技数仓数据治理实践

目录 一、背景 1.1 中通数仓架构介绍 1.2 中通数仓层级划分 1.3 中通数据现状 1.4 中通数仓现面临的压力 二、数据仓库具体实践 2.1 时效治理 2.1.1 数据入仓治理 2.1.2 核心模型治理 2.2 存储治理 2.3 内存治理 2.3.1 内存浪费治理 2.3.2 数据倾斜治理 2.3.3 内…

算法设计与分析实验报告c++java实现(ACM面试题、字符串匹配算法、循环赛日程安排问题、分治法求解最大连续子序列和、动态规划法求解最大连续子序列和)

一、 实验目的 1&#xff0e;加深学生对算法设计方法的基本思想、基本步骤、基本方法的理解与掌握&#xff1b; 2&#xff0e;提高学生利用课堂所学知识解决实际问题的能力&#xff1b; 3&#xff0e;提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、【ACM、…