|
|
发表于 2013-9-4 18:00:32
|
显示全部楼层
- #include <stdio.h>
- #include <iostream.h>
- /*
- 我的环境是VC++6.0
- 没错的话,是乘三次,也就是四个字节(不要忽略本身嘛,不就四个了吗)
- */
- void main(){
- __int64 byteSize;
- int a, b;
- int i;
- printf("%d %d\n",sizeof(int),sizeof(__int64));
- byteSize = 256; // 初始化变量,并赋予初值为一个字节的长度
- for(i = 1; i < sizeof(int); i++){ // 防止编译器不一致,我这里使用循环算法,把正范围中最大值求出来
- byteSize *= 256; // 就是让它不断乘以2的8次方,也就是一个字节。
- printf("第 %d 次计算的值是:%I64d\n", i, byteSize);
- }
- a = byteSize / 2 - 1; // 除二减一,这就是int的正整数最大值,我们可以打印看看。
- printf("测试到的byteSize大小为:%d\n", byteSize);
- printf("int型正整数最大值:%d\n", a);
- b = a + 1; // 测试+1后会有什么结果
- printf("在int型前提下,%d + 1 = %d\n", a, b);
-
- /*
- a = 2147483647; // int型正整数最大值,也就是2的32次方除二减一
- printf("%d\n",a);
- ++a; // 自增,也就是加一
- printf("%d\n",a);
- 这个是简单算法,2的32次方除2减一,就是这个数,然后自增,就超了。
- */
- }
复制代码 妥妥的搞定。。。 |
|