当前位置: 首页 > news >正文

c++教程3:基本运算符的使用

编程的重点在于处理信息 ,并进行运算,既然是运算了那肯定少不了运算符,先列几个C++里的基础运算符:
1、=(赋值,表示将 “=” 右侧内容传递给左侧)
2、+(左侧内容加上右侧内容)
3、-(左侧内容减去右侧内容)
4、* (同 “×\times×”)
5、/(同 “÷\div÷”)
6、%(同 mod, 表示左侧的数除以右侧的数的余数)
7、++(自增,变量数值 + 1,分为前置 ++、后置 ++)
8、(自减,变量数值 - 1,分为前置 --、后置 --)
9、>(大于,左侧数值大于右侧返回 true,否则 false)
10、<(小于,左侧数值小于右侧返回 true,否则 false)
11、>=(大于等于,同 “(\ge)”,左侧≥右侧返回 true)
12、<=(小于等于,同 “(\le)”,左侧≤右侧返回 true)
13、==(判断相等,左右数值一致返回 true;不要和赋值 = 混淆)
14、!=(不等于,同 “(\ne)”,左右数值不相等返回 true)
15、&(按位与,二进制对应位同时为 1 结果才为 1)
16、|(按位或,二进制对应位任意一个为 1 结果即为 1)
17、^(按位异或,二进制对应位数值不同则结果为 1,相同为 0)
18、~(按位取反,单目运算符,二进制所有 0 变 1、1 变 0)
19、<<(左移,二进制整体向左移动指定位数,低位补 0)
20、>>(右移,二进制整体向右移动指定位数;有符号数高位补符号位)
21、&&(逻辑与,两边条件同时成立结果为 true)
22、||(逻辑或,两边条件任意一个成立结果为 true)
23、!(逻辑非,取反;条件成立则返回 false,不成立返回 true)

这里科普一下二进制:

一、二进制基础概念

二进制(Binary)是计算机内部数据表示和运算的基础,它只使用两个数字:0 和 1。每个二进制位称为一个比特(bit),8个比特组成一个字节(byte)。

1. 二进制与十进制的对应关系

  • 十进制:逢十进一,使用数字 0-9
  • 二进制:逢二进一,使用数字 0 和 1

2. 二进制数的表示
二进制数通常以0b0B开头(C++14及以上支持),例如:

  • 0b1010表示十进制 10
  • 0b1111表示十进制 15

3. 位权与转换
二进制每一位的权重是 2 的幂次方(从右向左,从 0 开始):

  • 第0位(最右边):权重 2⁰ = 1
  • 第1位:权重 2¹ = 2
  • 第2位:权重 2² = 4
  • 第3位:权重 2³ = 8
  • 以此类推…

例如:0b1101= 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8 + 4 + 0 + 1 = 13

4. 二进制的基本运算

  • 与运算(&):两位都为1时结果为1
  • 或运算(|):两位至少一个为1时结果为1
  • 异或运算(^):两位不同时结果为1
  • 取反运算(~):0变1,1变0

注意:C++ 中整数默认是有符号类型,取反后会改变数值正负,日常使用频率较低。

四、二进制左移、右移运算(快速乘除)

移位运算属于极致高效的运算,底层直接位移二进制位,效率高于乘除法,可等价替代 2 的倍数乘除运算。
1. 左移 <<

运算规则:将二进制整体向左移动指定位数,右侧空出的低位统一补 0。
数学等价:左移 n 位,等价于×2n\times 2^n×2n
示例:十进制 3(二进制 11)左移 1 位
3<<1=6(二进制 11→110)3 << 1 = 6 \quad (\text{二进制} \ 11 \rightarrow 110)3<<1=6(二进制11110)
示例:十进制 3 左移 2 位
3<<2=12(二进制 11→1100)3 << 2 = 12 \quad (\text{二进制} \ 11 \rightarrow 1100)3<<2=12(二进制111100)
2. 右移 >>

运算规则:将二进制整体向右移动指定位数,左侧空出的高位根据数据类型补位。
数学等价:右移 n 位,等价于÷2n\div 2^n÷2n(向下取整)。
有符号数:高位补符号位(正数补0,负数补1);
补位规则:
无符号数:高位统一补0。
示例:十进制 12(二进制 1100)右移 1 位
12>>1=6(二进制 1100→110)12 >> 1 = 6 \quad (\text{二进制} \ 1100 \rightarrow 110)12>>1=6(二进制1100110)
示例:十进制 12 右移 2 位
12>>2=3(二进制 1100→11)12 >> 2 = 3 \quad (\text{二进制} \ 1100 \rightarrow 11)12>>2=3(二进制110011)

多谢浏览,请看到的朋友们留个赞~

http://www.jsqmd.com/news/1256180/

相关文章:

  • Full Page Screen Capture:告别网页截图烦恼的终极解决方案
  • 2026年AIGC检测新规来了!论文AI率超标怎么办?一篇讲透
  • 同法人小程序主体变更有什么用处?手机线上办理指南 - 跑政通
  • 驾驭 AI Coding:从即兴氛围编码走向工程化 Harness 落地
  • 深度解析TMSpeech:Windows实时语音转字幕系统的架构设计与技术实现
  • 扣子微信机器人搭建全流程:从0到日均300+自动交互,附12个避坑清单
  • 基于YOLOv10的虾病害检测系统开发与实践
  • Wand-Enhancer:零成本解锁WeMod专业版功能的终极解决方案
  • 实测|2026上海名表回收市场探访,挑选靠谱回收商家参考指南 - 全国二奢机构参考
  • Atrial Natriuretic Factor (1-30) (frog) ;APRSMRRSSDCFGSRIDRIGAQSGMGCGRF
  • 3个阶段掌握Anki Prettify:从新手到专家的视觉学习革命
  • 毕设项目 yolov11医学影像脑瘤检测识别系统
  • 三步免费解锁Wand专业版功能:开源增强工具完整指南
  • 深度学习在手机中框智能检测中的应用与优化
  • 深入解析MSPM0 Flash控制器:寄存器操作、编程流程与避坑指南
  • 企业级大模型开发如何降本增效?2026年主流模型训练平台选型全景评估
  • AnySearch:面向 AI 系统的基础AI 搜索工具技术解析
  • 第033章:ComfyUI视频制作LTX-2.3模型(图像音频转视频)
  • 荣耀Robot Phone机械云台解析:四自由度防抖与大师电影模式
  • 2026年打房产继承官司靠谱的律师怎么选:文天文房产业务诉讼团队专业权威 - GrowthUME
  • AI分子设计:深度学习如何革新药物与材料研发
  • 解锁AMD Ryzen隐藏潜力:SMUDebugTool硬件级调试完全指南
  • Revit 公式能力技术文档
  • AI模型代码兼容性检测实战手册:从TensorFlow 1.x到PyTorch 2.4,6步完成零误差平滑迁移
  • 2026年在湖北评职称继续教育有什么要求?一文详细给你讲清楚
  • 纤维球过滤器(运行原理)-杭州鑫凯
  • 生物医药科研协作平台架构深度评测:十大技术选型指南
  • C++的引用折叠与完美转发:类型推导的深层机制
  • springboot社区垃圾分类系统微信小程序
  • 从零散文件到标准化管理:高效文件命名与批量处理实践