小编Mux*_*Ate的帖子

C#中的“操作溢出”

我发现了一些关于 C# 原始数据类型的有趣之处;
C#的long整数类型范围是-2^63 ~ 2^63-1;
long.MaxValue = 9223372036854775807
inttype 的范围是 -2^31 ~ 2^31-1。
int.MaxValue = 2147483647
所以现在问题来了。
这是程序。

static void Main(string[] args)
{
    Console.WriteLine($"long.Max: {long.MaxValue}");
    Console.WriteLine($"int.Max: {int.MaxValue}");
    int f = int.MaxValue;
    long x = f + 1;
    Console.WriteLine($"int.Max + 1: {x}");
}
Run Code Online (Sandbox Code Playgroud)

我通过命令运行此代码dotnet run。我得到了这个:

long.Max: 9223372036854775807
int.Max: 2147483647
int.Max + 1: -2147483648
Run Code Online (Sandbox Code Playgroud)

那么,为什么值x-2147483648不是2147483648

.net c#

0
推荐指数
1
解决办法
52
查看次数

标签 统计

.net ×1

c# ×1