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和13bitset<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
- 比较两个位的不同,如果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个字节
- ……
相关文章:

C/C++基础----运算符
算数运算符 运算符 描述 例子 两个数字相加 两个变量a b得到两个变量之和 - 两个数字相减 - * 两个数字相乘 - / 两个数字相除 - % 两个数字相除后取余数 8 % 3 2 -- 一个数字递减 变量a:a-- 、--a 一个数字递增 变量a: a 、 a 其中递…...
YOLOv9:下一代目标检测的革新
目标检测作为计算机视觉领域的一个重要分支,一直是研究的热点。YOLO系列作为目标检测算法的佼佼者,自YOLO1发布以来,就在速度和精度上取得了很好的平衡,深受业界和学术界的喜爱。 YOLOv9作为该系列的最新版本,不仅在性…...

Leetcode算法训练日记 | day20
一、合并二叉树 1.题目 Leetcode:第 617 题 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新…...

conda创建虚拟环境太慢,Collecting package metadata (current_repodata.json): failed
(省流版:只看加粗红色,末尾也有哦) 平时不怎么用conda,在前公司用服务器的时候用的是公司的conda源,在自己电脑上直接用python创建虚拟环境完事儿,所以对conda的配置并不熟悉~~【狗头】。但是python虚拟环境的最大缺点…...

Tensorflow(GPU版本配置)一步到位!!!
Tensorflow(GPU版本配置)一步到位!!! CUDA安装CUDA配置Tensorflow配置常见的包 CUDA安装 配置了N次的Tensorflow–Gpu版本,完成了踩坑,这里以配置Tensorflow_gpu 2.6.0为例子进行安装 以下为ten…...
STL之map
CSTL之map 1.介绍 map是映射的意思,即每个x对应一个y,我们这里说成key和value 举例子说明:运动->篮球 (运动是key,篮球是value)用电脑->写代码 (用电脑是key,写代码是value)…...
闲谈2024(一)
时光飞逝,一转眼24年的第一个季度已经过去了,回望这3个多月,感触颇多。首先,24年从一个一心只读圣贤书,全身心投入在技术上的研发工程师,转变为一个团队的小leader。从我个人对自己的定位来说,我…...

SQL注入利用 学习- 布尔盲注
布尔盲注适用场景: 1、WAF或者过滤函数完全过滤掉union关键字 2、页面中不再回显具体数据,但是在SQL语句执行成功或失败返回不同的内容 代码分析:过滤关键字 union if(preg_match(/union/i, $id)) { echo "fail"; exit; } 代码…...
前端项目部署教程——有域名有证书
一、拉取nginx镜像 docker pull nginx //先拉取nginx镜像二、打包前端项目 1、将Vue打包项目传输到/usr/local/vue/下blog和admin文件夹下 重点: 每一个子域名都要申请证书,在阿里云每年可以免费申请20个证书, 免费证书申请教程在 免费证书申请教程 …...

《看漫画学C++》第12章 可大可小的“容器”——向量
在C编程的世界里,数组是一种基础且广泛使用的数据结构。然而,传统的静态数组在大小固定、管理不便等方面的局限性,常常让开发者感到束手束脚。幸运的是,C标准库中的vector类为我们提供了一种更加灵活、高效的动态数组解决方案。 …...

OpenAI推出GPTBot网络爬虫:提升AI模型同时引发道德法律争议
文章目录 一、GPTBot 简介二、功能特点三、技术细节3.1、用户代理标识3.2、数据采集规则3.3、数据使用目的3.4、网站屏蔽方法3.5、数据过滤 四、GPTBot 的道德和法律问题五、GPTBot 的使用方法和限制六、总结 一、GPTBot 简介 OpenAI 推出的网络爬虫GPTBot旨在通过从互联网上收…...

Claude使用教程
claude 3 opus面世后,网上盛传吊打了GPT-4。网上这几天也已经有了许多应用,但竟然还有很多小伙伴不知道国内怎么用gpt,也不知道怎么去用这个据说已经吊打了gpt-4的claude3。 今天我们想要进行的一项尝试就是—— 用claude3和gpt4,…...

【经典算法】LeetCode25:K 个一组翻转链表(Java/C/Python3,Hard)
#算法 目录 题目描述思路及实现方式一:递归思路代码实现Java 版本C 语言版本Python3 版本 复杂度分析 方式二:迭代和原地反转思路代码实现Java 版本C 语言版本Python3 版本 复杂度分析 总结相似题目 标签:链表、递归 题目描述 给你链表的头…...

6.11物联网RK3399项目开发实录-驱动开发之定时器的使用(wulianjishu666)
嵌入式实战开发例程【珍贵收藏,开发必备】: 链接:https://pan.baidu.com/s/1tkDBNH9R3iAaHOG1Zj9q1Q?pwdt41u 定时器使用 前言 RK3399有 12 个 Timers (timer0-timer11),有 12 个 Secure Timers(stimer0~stimer11) 和 2 个 …...

算法训练营第二十三天(二叉树完结)
算法训练营第二十三天(二叉树完结) 669. 修剪二叉搜索树 力扣题目链接(opens new window) 题目 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>L) 。你可能需要改…...

mysql主从复制Slave_SQL_Running: No
1、SHOW SLAVE STATUS \G; Slave_SQL_Running: No 解决方案: 重新同步主库和从库的数据 1、从库先停掉slave stop slave; 2、在主库查看此时的日志文件和位置 show master status; 3、在从库中执行 change master to master_host192.168.2.177,master_userslave…...

【SpringBoot】SpringBoot项目快速搭建
本文将介绍Springboot项目的快速搭建 快速创建SpringBoot项目 打开IDEA在File->New->Project中新建项目 点击左侧的Spring Initializr 输入以下信息: Name 项目名称Group 根据公司域名来,或者默认com.example【倒序域名】Package Name 包名&am…...

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

4.2.k8s的pod-标签管理、镜像拉取策略、容器重启策略、资源限制、优雅终止
一、标签管理 1.标签在k8s中极其重要,大多数资源的相互关联就需要使用标签;也就是说,资源的相互关联大多数时候,是使用标签进行关联的; 2.其他作用,在k8s集群中,node节点的一些操作比如污点及污…...
能源党建后台项目总结
1.引入 本次框架是Ruoyi-plusvue2element组合。 2.样式 由于是后台项目,样式要求统一,不可以有的输入框长有的短。着重几点: 1.关于form表单应该如何水平布局 在element中,form有个属性叫::inline"true"…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...

算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...