在C语言中,整数(对于32位机器)是32位,范围从-32,768到+32,767。 在Java中,整数(long)也是32位,但范围从- 2147,483,648到+ 2147,483,647。
我不明白Java中的范围是如何不同的,即使位数是相同的。有人能解释一下吗?
在C语言中,整数(对于32位机器)是32位,范围从-32,768到+32,767。 在Java中,整数(long)也是32位,但范围从- 2147,483,648到+ 2147,483,647。
我不明白Java中的范围是如何不同的,即使位数是相同的。有人能解释一下吗?
当前回答
在C语言中,整数(对于32位机器)是32位,范围从-32768到+32767。
错,32位有符号整数在2的补式表示中的范围是-231到231-1,等于-2,147,483,648到2,147,483,647。
其他回答
在C语言中,__int32的范围是-2147483648到2147483647。看这里的全范围。
unsigned short 0 to 65535
signed short –32768 to 32767
unsigned long 0 to 4294967295
signed long –2147483648 to 2147483647
不能保证'int'将是32位,如果你想使用特定大小的变量,特别是在编写涉及位操作的代码时,你应该使用'标准整数类型'。
在Java中
int数据类型是一个32位有符号的二补整数。它的最小值为-2,147,483,648,最大值为2,147,483,647(含)。
32位整数,取值范围为- 2147,483,648 ~ 2147,483,647。然而,你在32位机器上的事实并不意味着你的C编译器使用32位整数。
java int的严格等效是C中的long int。
编辑: 如果定义了int32_t,那么它在精度方面是等效的。长整型保证了Java整型的精度,因为它的大小保证至少为32位。
在标准C语言中,你可以使用INT_MAX作为最大的“int”值,这个常量必须在“limits.h”中定义。为其他类型(http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.5.html)定义了类似的常量,如所述,这些常量依赖于实现,但根据标准中指定的每种类型的最小位有一个最小值。
在C语言中,整数(对于32位机器)是32位,范围从-32768到+32767。
错,32位有符号整数在2的补式表示中的范围是-231到231-1,等于-2,147,483,648到2,147,483,647。