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

59 篇文章 0 订阅
38 篇文章 0 订阅

前言

在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平台还有算法中级课(可以自行了解)。

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值