假设我为一个 int 分配了一个 11 位数字,会发生什么?我玩了一下它,我知道它给了我一些 int 范围内的其他数字。这个新号码是如何产生的?
原文由 user2817869 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设我为一个 int 分配了一个 11 位数字,会发生什么?我玩了一下它,我知道它给了我一些 int 范围内的其他数字。这个新号码是如何产生的?
原文由 user2817869 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答476 阅读✓ 已解决
它是 实现定义的 行为。这意味着您的编译器必须提供说明在这种情况下会发生什么的文档。
因此,请查阅该文档以获得您的答案。
实现定义它的一种常见方法是将输入整数截断为
int
的位数(在必要时将无符号重新解释为有符号之后)。C++14 标准参考:[expr.ass]/3, [conv.integral]/3