黑马程序员技术交流社区
标题:
求解。。。
[打印本页]
作者:
xiaocai
时间:
2012-4-8 17:19
标题:
求解。。。
public class Virus {
static int virusCount = 0;
public Virus() {
virusCount++;
}
static int getVirusCount() {
return virusCount;
}
}
public class VirusLook {
public static void main(String[] args) {
int numViruses = Integer.parseInt(args[0]);
if (numViruses > 0) {
Virus[] virii = new Virus[numViruses];
for (int i = 0; i < numViruses; i++) {
virii[i] = new Virus();
}
System.out.println("There are " + Virus.getVirusCount()
+ " viruses.");
}
}
}
为什么输入200能运行,2000000000000就不能运行
作者:
高铭
时间:
2012-4-8 17:50
超过int值的最大值了 大于 2的31次方减1 就不行了
作者:
郑苑东
时间:
2012-4-8 18:33
一个int是四个字节。。每个字节八位。。总的也就是32位。。计算机是只有二进制的数。。0-1.。也等于2的32次方。。其中一半是负数。。所以是2的三十一次方。。在减去一个0也算在正数内。。所以int的最大值为2的31次方减一。。最大值为负的2的三十一次方。。
作者:
王永旺
时间:
2012-4-8 18:42
1、你定义的是int类型,int类型在内存中占用4个byte,32bit,通俗说就是32位二进制
2、20000000000000换算成二进制是:
100100011000010011100111001010100000000000000
仅数据就需要32位二进制表示了,但数据在内存里还需要一位表示符号,所以int类型就表示不了了。
3、你可以把int virusCount 改为long virusCount应该就可以运行了。
作者:
pray
时间:
2014-4-26 06:05
孙悟空对铁扇公主说道:好嫂子,我的牛魔王大哥在家吗?铁扇公主不悦道:孙猴子!你大晚上来找我,你大哥在家的话,我敢给你开门吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2