【发布时间】:2009-07-14 05:38:46
【问题描述】:
鉴于此代码:
int x = 20000;
int y = 20000;
int z = 40000;
// Why is it printing WTF? Isn't 40,000 > 32,767?
if ((x + y) == z) Console.WriteLine("WTF?");
知道一个 int 可以容纳 -32,768 到 +32,767。为什么这不会导致溢出?
【问题讨论】:
-
32 位机器中的 int 在大多数情况下是 4 个字节。
-
您是否尝试打印出“x+y”,然后打印出 z?也许它们都被存储为相同的负数。
-
C# 中的 int 是 32 位 总是。
-
哇8个人的回答基本一样,下面
-
我希望所有比原来正确答案晚发帖的人都删除他们多余的答案...
标签: c# .net visual-studio int integer-overflow