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。