1
2
3
4
5
6
| let (a, b) = (7i32, 2i32);
a / b; // 3 向零截断
-7 % 2; // -1 % 的符号跟被除数
(-7i32).div_euclid(2); // -4 地板除数
(-7i32).rem_euclid(2); // 1 非负余数
2i32.pow(10); // 1024(整数幂:powi/pow)
|
Rust 没有 ** 运算符:整数用 pow/powi,浮点用 powf/powi。溢出在 debug 下 panic、release 下回绕,要确定性就用 checked_*/wrapping_*/saturating_*。
📘 Rust · 运算符
1
2
3
4
5
| 7 / 2 // 3
-7 % 2 // -1 符号跟被除数
7.0 / 2 // 3.5
pow(2.0, 10.0) // 1024.0(浮点幂)
Int8(127) &+ 1 // -128 回绕
|
整数除法向零截断、% 支持整数与浮点(浮点用 truncatingRemainder 语义);溢出默认 trap,只有 &+/&-/&* 才回绕。没有整数的 **。
📘 Swift · 基本运算符
1
2
3
4
5
| 7 / 2 // 3
-7 % 2 // -1 符号跟被除数
math.Pow(2, 10) // 1024(浮点)
var u uint8 = 255
u++ // 0 回绕
|
Go 的整数除法向零截断、% 跟被除数;没有幂运算符(用 math.Pow,返回 float64);溢出静默回绕,math.MinInt64 / -1 也回绕。
📘 Go spec · 算术运算符
1
2
3
4
5
6
7
| 7 / 2 # 3.5 真除法,永远 float
7 // 2 # 3 地板除(向 -∞)
-7 // 2 # -4
-7 % 2 # 1 % 的符号跟除数
7 % -2 # -1
2 ** 10 # 1024 任意精度
divmod(-7, 2) # (-4, 1)
|
Python 的 // 与 % 满足 a == (a // b) * b + a % b,所以负数取模结果非负(当 b > 0);整数是任意精度,不存在溢出。
📘 Python · 算术运算
1
2
3
4
5
| 7 / 2 // 3
-7 % 2 // -1 符号跟被除数
(-7).floorDiv(2) // -4 地板除(1.5+)
(-7).mod(2) // 1 符号跟除数
2.0.pow(10) // 1024.0
|
Kotlin 的 //% 走 JVM 语义(向零、跟被除数),另有 floorDiv/mod 提供地板语义;整数没有 **,要用 Math.pow 或浮点的 pow。
📘 Kotlin · 数字运算
1
2
3
4
5
6
| 7 / 2; // 3
-7 % 2; // -1 符号跟被除数
Math.floorDiv(-7, 2); // -4
Math.floorMod(-7, 2); // 1
Math.pow(2, 10); // 1024.0
Math.addExact(Integer.MAX_VALUE, 1); // 🛑 ArithmeticException
|
/ 与 % 向零、跟被除数;Math.floorDiv/floorMod 给地板语义;没有 **,Math.pow 返回 double(大整数幂用 BigInteger.pow)。
📘 JLS · 除法与取模
1
2
3
4
5
| 7 / 2; // 3
-7 % 2; // -1 符号跟被除数
std::pow(2.0, 10.0); // 1024.0
std::midpoint(1, 2); // 1 安全求平均(C++20)
1u << 31; // 无符号回绕(有符号溢出是 UB)
|
整数除法向零截断、% 跟被除数;有符号溢出是未定义行为,无符号才回绕;std::pow 返回浮点,整数幂要自己写或引库。
📘 cppreference · 算术运算符
1
2
3
4
| 7 / 2; /* 3 */
-7 % 2; /* -1 符号跟被除数 */
pow(2.0, 10.0); /* 1024.0,需要 <math.h> 并链接 -lm */
INT_MIN / -1; /* 🛑 UB */
|
C 的除法与取模同 C++:向零截断、% 跟被除数;% 只能用于整数(浮点取模用 fmod);有符号溢出与 INT_MIN / -1 都是 UB。
📘 cppreference · C 算术运算符
1
2
3
4
5
6
7
| 7 / 2 # 3.5 永远 Float64
7 ÷ 2 # 3 div:向零
div(-7, 2) # -3
fld(-7, 2) # -4 向 -∞
rem(-7, 2) # -1 符号跟被除数
mod(-7, 2) # 1 符号跟除数
2 ^ 10 # 1024
|
Julia 把"整除"拆成四个函数(div/fld/cld 与 rem/mod),语义一目了然;^ 既能做整数幂也能做浮点幂,整数溢出静默回绕。
📘 Julia · 数学运算
1
2
3
4
5
| 7 / 2; // 3
-7 % 2; // -1
Math.DivRem(7, 2, out int r); // 商与余数一次拿到
Math.Pow(2, 10); // 1024.0
decimal m = 0.1m + 0.2m; // 0.3(十进制精确)
|
整数除法向零、% 跟被除数;没有 **(Math.Pow 返回 double);decimal 是十进制运算,适合金额;整数溢出默认回绕,checked 才抛异常。
📘 MS Learn · 算术运算符
1
2
3
4
5
| 7 / 2 // 3.5 / 永远 double
7 ~/ 2 // 3 向零整除
-7 % 3 // 2 % 是欧几里得模,恒非负
(-7).remainder(3) // -1 余数跟被除数
math.pow(2, 10) // 1024(dart:math)
|
Dart 用 ~/ 表示整除、% 恒非负;没有 **,幂要用 dart:math 的 pow(返回 num);Web 上整数退化为 JS number。
📘 Dart · 运算符
1
2
3
4
5
6
| 7 / 2 # 3.5
7 %/% 2 # 3 地板整除
-7 %/% 2 # -4
-7 %% 2 # 1 符号跟除数
2 ^ 10 # 1024
c(1, 2) + 1 # 向量化:[1] 2 3
|
R 的 / 永远给 double、%/% 是地板整除、%% 的符号跟除数;所有算术都是向量化的,循环通常不需要;整数溢出得到 NA 加警告。
📘 R · 算术运算符
1
2
3
4
5
6
| const a: i32 = -7;
@divTrunc(a, 2); // -3 向零
@divFloor(a, 2); // -4 向 -∞
@rem(a, 2); // -1 符号跟被除数
@mod(a, 2); // 1 符号跟除数
std.math.pow(f64, 2, 10); // 1024
|
Zig 的 +/-/* 默认检查溢出(安全模式崩溃),+% 回绕、+| 饱和;有符号的 / 与 % 在运行时要用内置函数。
📘 Zig · 运算符
1
2
3
4
5
6
| print(7 / 2) -- 3.5 / 永远 float
print(7 // 2) -- 3 地板除
print(-7 // 2) -- -4
print(-7 % 2) -- 1 % 跟除数
print(2 ^ 10) -- 1024.0 ^ 返回 float
print("10" + 1) -- 11 字符串自动转数字
|
Lua 的 ///% 是地板语义、^ 永远返回浮点;整数溢出回绕(math.maxinteger + 1 == math.mininteger)。
📘 Lua 5.5 · 算术运算符
1
2
3
4
5
| 7 / 2; // 3.5 / 永远浮点
Math.trunc(7 / 2); // 3 模拟整除
-7 % 2; // -1 符号跟被除数
2 ** 10; // 1024
Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2; // true(丢精度)
|
number 是双精度浮点:没有整除运算符、超过 2⁵³ 静默丢精度;需要精确整数用 bigint(支持 ** 但不能与 number 混算)。
📘 MDN · 算术运算符
1
2
3
4
5
6
| 7 / 2; // 3.5
Math.trunc(7 / 2); // 3
-7 % 2; // -1
2 ** 10; // 1024
"1" + 1; // "11" ← + 会拼接字符串
10n ** 2n; // 100n bigint 幂
|
除了"永远浮点"之外,JS 最大的坑是 +:只要一边是字符串就变成拼接;判类型要显式用 Number()/String()。
📘 MDN · 表达式与运算符
1
2
3
4
5
6
| 7 / 2; // 3.5
intdiv(7, 2); // 3 向零整除
-7 % 2; // -1 符号跟被除数
2 ** 10; // 1024
fmod(-7, 2); // -1 浮点取模(C 语义)
PHP_INT_MAX + 1; // float ← 溢出变浮点
|
/ 在整除时返回 int、否则 float;% 只对整数(会先转 int),浮点用 fmod;整数溢出静默变成 float。
📘 PHP · 算术运算符
1
2
3
4
5
6
| 7 / 2 # 3
-7 / 2 # -4 地板除
-7 % 2 # 1 % 跟除数
2 ** 100 # 大整数,任意精度
7.fdiv(2) # 3.5
(-7).divmod(2) # [-4, 1]
|
Ruby 的 / 对两个整数是地板除、% 跟除数,这点和 C 系相反;整数任意精度,不会溢出。
📘 Ruby · 数值运算