C# int 类型在32/64位环境下取值范围无变化

最近在学习中突然想到,我在64位环境下,int取值范围是否有变化?为了检测这个结果,我做了以下这个测试:
1、环境:win7旗舰版64位+vs2010 sp1(版本号:10.0.40219.1SP1Rel)+.Net 4.0.30319 SP1Rel
2、代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("int类型的最大值:"+int.MaxValue);
            Console.WriteLine("Int64类型的最大值:" + Int64.MaxValue);
            Console.WriteLine("long类型的最大值:" + long.MaxValue.ToString());
            Console.WriteLine("ulong类型的最大值:" + ulong.MaxValue.ToString());
            Console.ReadKey();
    

        }
    }
}


3、输出结果截图:

C# int 类型在32/64位环境下取值范围无变化_第1张图片

从截图中可以看出,程序ConsoleApplication1.exe已经运行在64位状态下(非64位的有 *32 标记),但是int依然还是21亿(小数不计了^Q^)
所以说, int在64位环境下,超过21亿还是会溢出的
另外.Net中的Int64和C#的long,取值是一样的。
 
 
 
最后,转一篇文章( http://www.cnblogs.com/cuihongyu3503319/archive/2011/08/11/2135213.html)
c# int Int32 Int64 的区别

Int16 值类型表示值介于 -32768 到 +32767 之间的有符号整数。

Int32 值类型表示值介于 -2,147,483,648 到 +2,147,483,647 之间的有符号整数。

Int64 值类型表示值介于 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数。

----------------------------------------------------------------------------------------------------------------------------

short 关键字表示一种整数数据类型,该类型根据下表显示的大小和范围存储值。

类型 范围 大小 .NET Framework 类型

short

-32,768 到 32,767

有符号 16 位整数

System.Int16

----------------------------------------------------------------------------------------------------------------------------

int 关键字表示一种整型,该类型根据下表显示的大小和范围存储值。

类型 范围 大小 .NET Framework 类型

int

-2,147,483,648 到 2,147,483,647

有符号 32 位整数

System.Int32

----------------------------------------------------------------------------------------------------------------------------

long 关键字表示一种整型,该类型根据下表显示的大小和范围存储值。

类型 范围 大小 .NET Framework 类型

long

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

有符号 64 位整数

System.Int64

 转载地址: http://www.cnblogs.com/maxcss/archive/2012/01/30/2332343.html

你可能感兴趣的:(C#)