2013-03-17 224 views
2

在Java和.net中,默认的int都是32位。这是否与java和.net出现时,大多数处理器使用的是32位?还是有其他理由选择32作为整数的默认位长度?为什么int 32位?

+1

0123我认为即使是现在大多数运行Java代码的处理器都是32位的 - 除非手机上安装有64位CPU ... – thkala 2013-03-17 21:37:01

+0

long或long int用于表示32位... – Makoto 2013-03-17 21:37:35

+4

所有这些语言中都有16位,32位和64位整数......有什么问题? – 2013-03-17 21:37:42

回答

4

是的,这主要是因为大多数处理器都是32位。这也显示在Java规范的其他部分。例如,它明确地不保证longdouble(64位)的读写是原子的,而对于所有其他原始类型它是原子的。

+0

你的答案不清楚为什么32位 - 是int的(通常)大小,与cpu寄存器无关 – kirugan 2013-03-17 21:44:32

+1

它是32位,因为32位处理器最舒适(即高效)的32位值。我不知道还有什么要解释的。 – Cephalopod 2013-03-17 21:49:12

2

Java基于C和一些C++。

In C char is 8-bit,short is 16-bit and a long long is 64-bit。一个int可能是16位或32位,但为了简化Java,他们决定在byte是8位,short是16位,int是32位而long是64位。在Java char中是16位无符号的。

总之,从C有四种类型和四种尺寸,所以int结束了32位。

+0

在C89(或者smth ...)中有很长的时间吗? – kirugan 2013-03-17 22:26:14

+0

请注意,这些尺寸都不能保证C或C++。他们只是最常见的实现。 – EJP 2013-03-17 23:50:55

相关问题