実際に試してみよう
※この作品は2070年という設定です
Visual StudioなどでC#コンソールアプリを作成し、以下のコードを実行してましょう。
using System;
namespace sample
{
class Program
{
static void Main(string[] args)
{
int i = 2147483647;
i = i + 1;
Console.WriteLine(i);
}
}
}
コンソールには以下の結果が出力されるはずです。
-2147483648
次は、intをuintに書き換えて実行してみましょう。
using System;
namespace sample
{
class Program
{
static void Main(string[] args)
{
uint i = 2147483647;
i = i + 1;
Console.WriteLine(i);
}
}
}
すると、コンソールの出力は以下のようになります。
2147483648
では、2147483647の代わりに、符号なし32ビット整数の最大値4294967295を使用します。
using System;
namespace sample
{
class Program
{
static void Main(string[] args)
{
uint i = 4294967295;
i = i + 1;
Console.WriteLine(i);
}
}
}
すると、コンソールの出力は以下のようになります。
0
using System;
namespace sample
{
class Program
{
static void Main(string[] args)
{
uint i = 0;
i = i - 1;
Console.WriteLine(i);
}
}
}
コンソールの出力は以下のようになりました。
4294967295
