rust - Rust 中的无符号整数溢出

标签 rust arithmetic-expressions

我是 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 - Rust 中的无符号整数溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53568885/

相关文章:

multithreading - 如何将对堆栈变量的引用传递给线程?

rust - Rust 中的裸机自旋锁实现

rust - 如何在 Rust 中实现基于生成器或异步函数的轻量级长生命周期线程?

rust - 为什么在以 `Self: Sized` 为界时不能调用特征对象上的函数?

c++ - C++11 标准是否保证零值有符号整数的一元减为零?

Bash脚本检查特定进程的cpu使用情况

javascript - 输入验证只工作一次

rust - 如何找到当前 Rust 编译器的默认 LLVM 目标三元组?

c - printf() 正在打印错误的值

java - java 中的 Long 拆箱