Rust 中的无符号整数溢出
Unsigned integer overflow in Rust
我是 Rust 的初学者。代码中:
println!("{}", 4400202385408u64 * 34359738368u64);
rust 编译器给我以下错误:
error: attempt to multiply with overflow
尽管乘法结果在std::u64::MAX
以内
谁能告诉我发生了什么事?
despite the fact that the result of the multiplication is within std::u64::MAX
很确定不是。
转换为十六进制,你正在做 0x40080800800 * 0x800000000。它们各自都远远超过 u32 MAX,所以当你将它们相乘时,它们远远超过 u64 max。
我是 Rust 的初学者。代码中:
println!("{}", 4400202385408u64 * 34359738368u64);
rust 编译器给我以下错误:
error: attempt to multiply with overflow
尽管乘法结果在std::u64::MAX
谁能告诉我发生了什么事?
despite the fact that the result of the multiplication is within std::u64::MAX
很确定不是。
转换为十六进制,你正在做 0x40080800800 * 0x800000000。它们各自都远远超过 u32 MAX,所以当你将它们相乘时,它们远远超过 u64 max。