📜  c++ 整数除法 - C++ (1)

📅  最后修改于: 2023-12-03 15:29:52.767000             🧑  作者: Mango

C++ 整数除法

C++中整数除法操作符为/,它的行为根据操作数的类型不同而有所不同。

整数除法规则

对于整数除法,当操作数都是正数时,结果为向下取整得到的最接近商的整数。例如:

int a = 7 / 2; // a的值为3

但是当操作数中存在负数时,C++的除法运算则会截断余数(向0取整)并返回一个比商小的最大整数。例如:

int b = -7 / 2; // b的值为-3
int c = 7 / -2; // c的值为-3

需要注意的是,C++标准并没有规定向下取整或者向0取整的具体实现方式,因此不同的编译器可能会有不同的结果。

浮点数除法

如果操作数中至少有一个是浮点数类型,则除法操作符/就会根据浮点数除法规则执行。此时,除法的结果将是一个浮点数。例如:

double d = 7.0 / 2; // d的值为3.5
取模运算符

C++中的取模运算符是%,它可以与整数除法结合使用,以获得除法的余数。取模运算的结果的符号与被除数相同。例如:

int e = -7 % 2; // e的值为-1
int f = 7 % -2; // f的值为1

需要注意的是,C++标准规定了取模运算符的行为只有在被除数和除数都是整数时才是明确定义的,对于浮点数和复数,取模运算即为未定义行为。

总结

C++的整数除法在处理正整数时,结果为向下取整得到的最接近商的整数;在处理包含负数的操作数时,则为截断余数(向0取整)并返回一个比商小的最大整数。需要注意的是,C++并没有规定具体的取整方式,因此不同的编译器可能会有差异。

浮点数除法的结果会是一个浮点数,而取模运算符则可以用于取除法的余数。