C/C++在64位机中int的最大值就是2^63-1,最小值是-2^63 java无论在什么系统中最大值都是2^32-1,最小值都是-2^32,或者是Integer.MAX_VALUE与Integer.MIN_VALUE
实际上,int在64位系统上制作32位并不是一个真正的问题.在32位整数操作是有效率的,如果你想有一个64位整数,你可以使用long,long long或者int64_t,在定义<stdint.h>.(实际上,64位Windows定义long为32位,但long long始终至少为64位.)
以long long 为例,占用64比特,最高位(左边第一位)为符号位,剩余63bit,可表示的最大正整数是 pow(2,63)-1 (注意:0的表示占用了一个值,因此减1) 理论计算数值如下: Step1:9,223,372,036,854,775,808 Step2:9,223,372,036,854,775,807 代码验证: 1intmain() {2usingnamespacestd;3for(longlongi...
很长一段时间以来,int已经不是16位了。而且它很少是64位的。除了在MSVC上,long通常与架构的大小相同...