2

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

4

4 回答 4

18

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

其他一些语言有不同的规则,并且int可能依赖于机器。在某些语言中,int被定义为具有最小尺寸,但机器/实现特定尺寸至少那么大。例如,在 C++ 中,int 数据类型不一定是 32 位。从基本数据类型

一般规范是 int 具有系统架构建议的自然大小(一个“单词”),并且四种整数类型 char、short、int 和 long 必须至少与其前一个一样大,其中 char 为总是一个字节的大小。

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

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

于 2013-02-15T17:38:08.323 回答
3

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

标准未指定以C++ 字节为单位的整数类型的大小

于 2013-02-15T17:38:46.393 回答
2

来自C# 语言规范

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

于 2013-02-15T17:41:05.210 回答
1

int是 的别名System.Int32。您也可以使用System.Int16,System.Int64BigInteger

于 2013-02-15T17:39:11.183 回答