当前位置: 技术问答>java相关
简单问题,继续散分
来源: 互联网 发布时间:2015-10-31
本文导语: public class Test { public static void main(String[] args) { int j = 0; for(int i = 0; i != -1; i++) System.out.println(j++); } } 这个程序能输出什么东西?为什么?要说清楚啊!哈哈哈 | ...
public class Test
{
public static void main(String[] args)
{
int j = 0;
for(int i = 0; i != -1; i++)
System.out.println(j++);
}
}
这个程序能输出什么东西?为什么?要说清楚啊!哈哈哈
{
public static void main(String[] args)
{
int j = 0;
for(int i = 0; i != -1; i++)
System.out.println(j++);
}
}
这个程序能输出什么东西?为什么?要说清楚啊!哈哈哈
|
什么死循环,只是0xffffffff的绝对值减去1个输出了。
应该是0-----0x7fffffff
然后再-0x7fffffff-----2
应该是0-----0x7fffffff
然后再-0x7fffffff-----2
|
for中的"int i = 0; i != -1; i++"一直成立,直到超过了整数的范围出现错误.
我想输出也是在整数的范围内但没有"-1"
我想输出也是在整数的范围内但没有"-1"
|
改正以前的发言
我认为是输出0到2的31次-1,再从负的2的31次到-2
原因
数在机器中以补码表示
0xffffffff为-1
0x80000000为负的2的31次
本题即从0x00000000至0xfffffffe的输出
注,java中int型为32位
取值范围为负的2的31次到正的2的31次-1
我认为是输出0到2的31次-1,再从负的2的31次到-2
原因
数在机器中以补码表示
0xffffffff为-1
0x80000000为负的2的31次
本题即从0x00000000至0xfffffffe的输出
注,java中int型为32位
取值范围为负的2的31次到正的2的31次-1
|
first output:0x00000000 to 0x7fffffff
then output: 0x80000000(~0x7fffffff) to 0xfffffffe(-2)
then output: 0x80000000(~0x7fffffff) to 0xfffffffe(-2)