gpt4 book ai didi

rust - 当整数算术运算溢出时,Rust 编程语言会发生什么?

转载 作者:行者123 更新时间:2023-12-04 16:24:04 25 4
gpt4 key购买 nike

据我所知,在 C 编程语言(和许多基于 C 的语言)中,当算术运算溢出 N 位整数时,这种溢出会将结果缩短为 2 的模 N 次方,
只保留结果的 LSB。
当这样的整数算术运算在 Rust 编程语言中溢出时会发生什么。

最佳答案

当您在 Debug模式下进行编译时,Rust 包括对整数溢出的检查,如果发生这种行为,这会导致您的程序在运行时出现 panic 。
当您使用 --release 在 Release模式下编译时标志,Rust 不包括对导致 panic 的整数溢出的检查。对于有符号值,结果基于二进制补码包装。对于无符号值,结果是该类型的最大值 + 1 的模。
标准库有许多函数可以更好地控制溢出情况下应该发生的事情,例如, checked_add , wrapping_add ,以及其他一些变体。
如果您还没有,我建议您阅读 The Rust Programming Language ,其中有一个 section专门解决这个问题。

关于rust - 当整数算术运算溢出时,Rust 编程语言会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68807024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com