是C#32位的int?

时间:2013-02-15 17:36:45

标签: c#

我刚刚听说过int的大小取决于机器。我一直认为int的大小是32位。有人可以解释这个难题吗?

4 个答案:

答案 0 :(得分:15)

在C#中,int类型始终为Int32,并且始终为32位。

其他一些语言有不同的规则,int可能与机器有关。在某些语言中,int被定义为具有最小大小,但机器/实现特定大小至少是那么大。例如,在C ++中,int数据类型不一定是32位。来自fundimental data types

  

一般规范是int具有系统体系结构建议的自然大小(一个“字”),四个整数类型char,short,int和long必须至少与前一个一样大, char总是一个字节大小。

但是,.NET对此进行了标准化,因此类型实际上指定为Int32Int64等。在C#中,intSystem.Int32的别名,并且将始终是32位。这由C#语言规范中的4.1.5 Integral Types部分保证,其中指出:

  

int类型表示带符号的32位整数,其值介于-2147483648和2147483647之间。

答案 1 :(得分:2)

MSDN表示int是32位。这个人可能在谈论C ++吗?

C++ size of integral types in bytes is unspecified by the standard

答案 2 :(得分:2)

来自C# Language Specifications

  

int类型表示带符号的32位整数,其值介于   -2147483648和2147483647。

答案 3 :(得分:1)

intSystem.Int32的别名。您还可以使用System.Int16System.Int64BigInteger