请看下面的程序:
class TestInt
{
public static void main(String args[])
{
int i=10,j=10,k=10;
int t=(i==j)?++i:--k;
System.out.println("t="+t);
System.out.println("i="+i+10);
System.out.println("k="+k+000);
}
}打印结果是:
t=11
i=1110
k=100t,i没有问题,
只是k,为什么会是100?而不是10000??
class TestInt
{
public static void main(String args[])
{
int i=10,j=10,k=10;
int t=(i==j)?++i:--k;
System.out.println("t="+t);
System.out.println("i="+i+10);
System.out.println("k="+k+000);
}
}打印结果是:
t=11
i=1110
k=100t,i没有问题,
只是k,为什么会是100?而不是10000??
因为System.out.println("k="+k+000)中的+是要加上""的~~~~~
你这样等于100+000还是等于100
如果改成这样System.out.println("k="+k+"000");
那么K就是10000了
好像不是你说的这样的.如果K本来应该是10的,+后,变成100了,请看清楚.
呵呵,找到了.学习
那么0的存储状态呢?全0。
所以机器在内存中认为bit位全0的是0,不管你连接多少个0,结果都是一个0,若要实现多个0的效果可以加"",连接字符串。
{
public static void main(String args[])
{
int i=10,j=10,k=10;
/*
*++i赋t=11,k值不变
* result : i=11;t=11;k=10;
*/
int t=(i==j)?++i:--k;
System.out.println("t="+t);//print:t=11
System.out.println("i="+i+10);//print i=1110;当println方法参数以字符串开头 //时,后面"+"为字符连接符
System.out.println("k="+k+000);//这里主要是注意"000"实际存着0 参考楼上解说所得
}
}
000是数字,在做加法时当然表示是0
如果要达到k=10000的效果的话
应该是:
System.out.println("k="+k+"000");
输出结果是:k=109.奇怪吧?因为001是八进制的如果是System.out.println("k="+k+009) ;
则不能通过编译,因为八进制怎么可能出现9 ??所以上边说的什么toString()方法根本不严密