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

前言

在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 = a 1;`
切换最低位 切换一个整数的最低位 int toggleLowestBit = a ^ 1; a ^ 1
检查最低位 检查一个整数的最低位是否为1 bool 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平台还有算法中级课(可以自行了解)。

相关推荐

  1. C语言基础运算

    2024-02-22 12:44:03       52 阅读
  2. C#位移运算运算

    2024-02-22 12:44:03       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 12:44:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 12:44:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 12:44:03       87 阅读
  4. Python语言-面向对象

    2024-02-22 12:44:03       96 阅读

热门阅读

  1. 求逆序对

    2024-02-22 12:44:03       49 阅读
  2. Oracle普通用户启停JOB报错ORA 27486权限不足

    2024-02-22 12:44:03       50 阅读
  3. vue系列--图片通过鼠标滚轮放大缩小指令

    2024-02-22 12:44:03       49 阅读
  4. netty的TCP服务端和客户端实现

    2024-02-22 12:44:03       50 阅读
  5. 令牌颁发与管理服务

    2024-02-22 12:44:03       48 阅读
  6. Golang 并发 Channel的用法

    2024-02-22 12:44:03       35 阅读
  7. C#中的Async的异常处理

    2024-02-22 12:44:03       47 阅读