c++做除法

int a b

float c 

c = a/b 还是整数

float a b c 

c= a/b c结果是浮点数

C++中,除法是一种基本的算术运算,使用时需要注意以下几点: ### 除数不能为零 在 `a/b` 或 `a%b` 的运算时,`b` 不能为0,否则程序会崩溃 [^4]。示例代码如下: ```cpp #include <iostream> using namespace std; int main() { int a = 10, b = 0; // 下面这行代码若执行会导致程序崩溃 // int result = a / b; return 0; } ``` ### 整数除法与浮点数除法 - **整数除法**:一个整数与一个整数的除法得到的结果依然是整数,小数部分会被直接截断(向零取整) [^4]。示例代码如下: ```cpp #include <iostream> using namespace std; int main() { int a = 5, b = 2; int result = a / b; cout << "整数除法结果: " << result << endl; return 0; } ``` 上述代码输出结果为 `2`。 - **浮点数除法**:一个浮点数和一个浮点数相除的运算结果可能是整数也可能是小数 [^4]。示例代码如下: ```cpp #include <iostream> using namespace std; int main() { double a = 5.0, b = 2.0; double result = a / b; cout << "浮点数除法结果: " << result << endl; return 0; } ``` 上述代码输出结果为 `2.5`。 ### 有符号整数与无符号整数间的除法 对于有符号整数与无符号整数间的除法C++ 会将有符号整数转换为无符号整数,符号位并没有丢失,而是变成了数据位参与运算 [^3]。示例代码如下: ```cpp #include <iostream> using namespace std; int main() { int num1 = -7; unsigned int num2 = 4; unsigned int result = num1 / num2; cout << "有符号与无符号整数除法结果: " << result << endl; return 0; } ``` 上述代码中 `(-7)/(unsigned)4` 不等于 -1,而等于 1073741822。 ### 编译器对除法的优化 - **常量/常量型除法**:编译器会直接计算出结果 [^3]。 - **变量/变量型除法**:无优化 [^3]。 - **变量/常量型除法**:若常量≠2^n,无优化;否则,除法将被转换为右移运算。由于由右移运算实现的整除实质上是向下取整,所以编译器会通过一些附加的指令在不产生分支结构的情况下将向下取整转换为向零取整 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值