【C++语法基础】3.常用数学运算和位运算技巧(✨新手推荐阅读)

news2025/3/9 22:24:21

前言

在C++编程中,数学运算是非常基础和常用的功能。C++提供了多种数学运算符和函数,用于执行基本的数学计算,如加减乘除、取模运算以及位运算等。

一、加减乘除四则运算

C++中的基本算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)。这些运算符可以直接应用于整数和浮点数。

#include <iostream>  
  
int main() {  
    int a = 10;  
    int b = 5;  
    float result;  
  
    // 加法  
    result = a + b;  
    std::cout << "a + b = " << result << std::endl;  
  
    // 减法  
    result = a - b;  
    std::cout << "a - b = " << result << std::endl;  
  
    // 乘法  
    result = a * b;  
    std::cout << "a * b = " << result << std::endl;  
  
    // 除法  
    result = static_cast<float>(a) / b; // 注意,整数除法会丢失小数部分  
    std::cout << "a / b = " << result << std::endl;  
  
    return 0;  
}

二、取模运算

取模运算符(%)用于计算两个数相除后的余数。

例如: 17 % 5 = 2 17\%5 = 2 17%5=2

#include <iostream>  
  
int main() {  
    int a = 10;  
    int b = 3;  
  
    // 取模运算  
    int remainder = a % b;  
    std::cout << "a % b = " << remainder << std::endl;  
  
    return 0;  
}

三、位运算

位运算符用于直接操作整数的二进制位。常见的位运算符包括按位与(&)、按位或(|)、按位异或(^)、按位非(~)、左移(<<)、右移(>>)。

#include <iostream>  
  
int main() {  
    int a = 60; // 二进制:0011 1100  
    int b = 13; // 二进制:0000 1101  
  
    // 按位与  
    int andResult = a & b; // 结果:0000 1100,即12  
    std::cout << "a & b = " << andResult << std::endl;  
  
    // 按位或  
    int orResult = a | b; // 结果:0011 1101,即61  
    std::cout << "a | b = " << orResult << std::endl;  
  
    // 按位异或  
    int xorResult = a ^ b; // 结果:0011 0001,即49  
    std::cout << "a ^ b = " << xorResult << std::endl;  
  
    // 按位非(通常用于单个数)  
    int notResult = ~a; // 结果:1100 0011,即-61(取决于系统,可能显示为其他值)  
    std::cout << "~a = " << notResult << std::endl;  
  
    // 左移  
    int leftShiftResult = a << 2; // 结果:1111 0000,即240  
    std::cout << "a << 2 = " << leftShiftResult << std::endl;  
  
    // 右移  
    int rightShiftResult = a >> 2; // 结果:0000 1111,即15  
    std::cout << "a >> 2 = " << rightShiftResult << std::endl;  
  
    return 0;  
}

三、常用的数学运算和技巧

运算符描述示例代码结果
+加法int sum = a + b;a + b
-减法int difference = a - b;a - b
*乘法int product = a * b;a * b
/除法float quotient = static_cast<float>(a) / b;a / b
%取模int remainder = a % b;a % b
&按位与int bitwiseAnd = a & b;a & b
``按位或`int bitwiseOr = a
^按位异或int bitwiseXor = a ^ b;a ^ b
~按位非int bitwiseNot = ~a;~a
<<左移int leftShift = a << 2;a << 2
>>右移int rightShift = a >> 2;a >> 2

位运算技巧

技巧描述示例代码结果
清除最低位清除一个整数的最低位int clearLowestBit = a & (a - 1);a & (a - 1)
设置最低位设置一个整数的最低位为1`int setLowestBit = a1;`
切换最低位切换一个整数的最低位int toggleLowestBit = a ^ 1;a ^ 1
检查最低位检查一个整数的最低位是否为1bool isLowestBitSet = a & 1;a & 1
查找最低位的1查找一个整数中最低位的1的位置int findLowestOneBit = a & (-a);a & (-a)

真心给大家推荐由我主讲的性价比超高的《算法基础课》,想要学习更多ACM/蓝桥杯/CSP/NOIP算法竞赛知识,无论你是想要竞赛拿奖的大学生、想要在笔试面试中脱颖而出、或者是对计算机编程感兴趣的小朋友,都可以学习,一定不要错过!点此了解:https://www.starrycoding.com/course/1
适用对象广泛
适用对象广泛
在这里插入图片描述
内容紧贴考纲,每节课约1.5小时高密度知识
在这里插入图片描述
广受好评,学习氛围浓厚,平等互助,拒绝歧视与绑架
在这里插入图片描述
视频、习题、文档,想学就学
没错,在学习算法的时候你甚至可以看V。
最最最最最最最最重要的是,由于课程的准备、录制、平台(前后端和评测机)的开发、推广都是由我一人完成,所以成本压的非常非常低,算法基础课仅售39元。
欢迎加入StarryCoding官方用户Q群:746470220(官网www.starrycoding.com)
悄悄说:StarryCoding平台还有算法中级课(可以自行了解)。

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

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

相关文章

C++ bfs建模(六十一)【第八篇】

今天我们来学习一下bfs建模 1.bfs建模 BFS 建模 广度优先搜索是从某个起点由内向外逐层搜索&#xff08;多起点 BFS 中所有起点拥有同样的搜索特性&#xff09;。 搜索顺序为&#xff1a;1→2→3→4→5→6→7→8。 之前的课程中&#xff0c;我们学习过搜索树中的每个结点均表…

C++ 之LeetCode刷题记录(三十三)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;…

汽车电子论文学习---电动汽车用高功率密度碳化硅电机控制器研究

关键重点&#xff1a; sic的特点&#xff1a;耐压高、开关速度快、开关损耗小&#xff1b;采用sic的控制器&#xff0c;损耗降低70%&#xff0c;续航里程提高5%。sic的模块并联设计难度高于IGBT模块&#xff1b;多芯片并联导致热耦合问题、温升不均&#xff0c;导致部分芯片率…

【C++】类和对象---const成员,取地址及const取地址操作符重载,static成员

目录 ⭐const成员 ⭐取地址及const取地址操作符重载 ⭐static成员 ⭐概念 ⭐特性 ⭐const成员 将const修饰的“成员函数”称之为const成员函数&#xff0c;const修饰类成员函数&#xff0c;实际修饰该成员函数隐含的this指针&#xff0c;表明在该成员函数中不能对类的任何…

字符串相乘

43. 字符串相乘https://leetcode.cn/problems/multiply-strings/ 给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 BigInteger 库或直接将输入转换为整…

快速学习springsecurity最新版 (版本6.2)---用户认证

简介 ​ Spring Security 是 Spring 家族中的一个安全管理框架。目前比较主流的是另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富,但是shiro并不简便,这里轻量级安全框架更推荐国产安全框架satokensatoken官网 ​ 一般大型的项目都…

Normalization,LayerNormalization和BatchNormalization

前言 假设我们的损失函数在空间中是一个曲面&#xff0c;这个曲面可以被我们人为的切出等高线&#xff0c;在采用梯度下降算法的时候&#xff0c;我们沿着梯度反方向迭代&#xff08;梯度方向与等高线垂直&#xff09;&#xff0c;到最后我们会抵达上图曲面的最低点。 在上面的…

strings.xml补充知识

复数名词 <plurals name"book"><item name"one">book</item><item name"others">books</item> </plurals>int bookCount 4; Resources res getResources(); String bookCount res.getQuantityString(R.…

数据结构与算法:队列

在上篇文章讲解了栈之后&#xff0c;本篇也对这一章进行收尾&#xff0c;来到队列&#xff01; 队列 队列的介绍队列的存储结构队列顺序存储的不足之处 循环队列的定义队列的链式存储结构链队列的构建链队列的初始化队尾入队队头出队获取队头队尾元素判断队列是否为空获取队列元…

2023年12月 Python(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,共50分) 第1题 运行以下程序,输出的结果是?( ) class A():def __init__(self,x):self.x=x

【MySQL】报错 Incorrect string value: ‘\xE5\xA4\xA9\xE5\x96\x9C‘ for column的解决方法

目录 解决方法如下&#xff1a;例如&#xff1a; 在向数据库中插入中文时遇到报错Incorrect string value: \xE5\xA4\xA9\xE5\x96\x9C for column &#xff0c;此时为数据库的编码格式有问题&#xff0c;可以按照如下方法修改 解决方法如下&#xff1a; 使用show create table…

【Pytorch深度学习开发实践学习】B站刘二大人课程笔记整理lecture04反向传播

lecture04反向传播 课程网址 Pytorch深度学习实践 部分课件内容&#xff1a; import torchx_data [1.0,2.0,3.0] y_data [2.0,4.0,6.0] w torch.tensor([1.0]) w.requires_grad Truedef forward(x):return x*wdef loss(x,y):y_pred forward(x)return (y_pred-y)**2…

【Web前端笔记10】CSS3新特性

10 CSS3新特性 &#xff11;、圆角 &#xff12;、阴影 &#xff08;&#xff11;&#xff09;盒阴影 &#xff13;、背景渐变 &#xff08;&#xff11;&#xff09;线性渐变&#xff08;主要掌握这种就可&#xff09; &#xff08;&#xff12;&#xff09;径向渐变 &…

什么是CODESYS开发系统

CODESYS是一种用于工业自动化领域的开发系统软件&#xff0c;提供了一个完整集成的开发环境。该软件由德国CODESYS GmbH&#xff08;原 3S-Smart Software Solutions GmbH&#xff09;公司开发&#xff0c;其最新版本为CODESYS V3。 CODESYS开发系统具有多种特性和优点。首先&a…

【杭州游戏业:创业热土,政策先行】

在前面的文章中&#xff0c;我们探讨了上海、北京、广州、深圳等城市的游戏产业现状。现在&#xff0c;我们切换视角&#xff0c;来看看另一个游戏创业热土——杭州的发展情况 最近第19届亚运会在杭州举办&#xff0c;本次亚运会上&#xff0c;电子竞技首次获准列为正式比赛项…

git push 使用 --mirror 参数复制仓库

迁移一个 Git 仓库并且保留原有的提交记录和分支 克隆原始仓库到本地 git clone <原始仓库URL> <新仓库目录>添加新的远程仓库&#xff1a;git remote add new-origin <新仓库URL>推送所有分支和标签到新的远程仓库&#xff1a;git push new-origin --mirro…

抠人像可抠头发丝的模型-软语义分割(Semantic Human Matting)

软语义分割&#xff08;Semantic Human Matting&#xff09; 一、Semantic Human Matting原理二、Semantic Human Matting 项目文件介绍三、数据集介绍及下载地址四、训练流程五、项目代码下载地址 哔哩哔哩详细解说&#xff08;进主页看全集&#xff09;&#xff1a; https://…

c++入门学习⑦——继承和多态(超级详细版)

目录 前言 继承 继承是什么&#xff1f; 为什么会存在继承&#xff1f; 语法&#xff1a; 一些基本的定义&#xff1a; 三种继承方式&#xff1a; 对象模型 对于构造和析构的顺序 同名函数的处理方式 总结&#xff1a; 静态成员&#xff1a; 定义&#xff1a; 性…

超级详细的python考核试题及答案

一、选择题&#xff08;每题2分&#xff0c;共20分&#xff09; 1&#xff0e;下列哪个语句在Python中是非法的&#xff1f; &#xff08;B&#xff09; A、x y z 1 B、x (y z 1) C、x, y y, x D、x y??xxy 2&#xff0e;关于Python内存管理&#xff0c;下列说法…

创意办公:专注 ONLYOFFICE,探索办公新境界

一.ONLYOFFICE 介绍 ONLYOFFICE 是一个基于 Web 的办公套件&#xff0c;提供了文档处理、电子表格和演示文稿编辑等功能。它被设计为一个协作工具&#xff0c;支持多人实时协作编辑文档&#xff0c;并且可以在本地部署或者作为云服务使用。 二.ONLYOFFICE 特点和功能 以下是 …