Rust中的无符号整数溢出

时间:2018-12-01 07:52:31

标签: rust arithmetic-expressions

我是Rust的初学者。在代码中:

println!("{}", 4400202385408u64 * 34359738368u64);

rust编译器给我以下错误:

error: attempt to multiply with overflow 

尽管乘法结果在std::u64::MAX之内

有人可以指出我的情况吗?

1 个答案:

答案 0 :(得分:1)

  

尽管乘法结果在std :: u64 :: MAX之内

肯定不是。

转换为十六进制,您正在执行0x40080800800 * 0x800000000。它们各自都在u32 MAX之上,因此,当您将它们相乘时,它们都在u64 MAX之上。