在WIN-TC中可以调试啊,怎么会不可以呢 在字节数上long型比int型大,所以int型转long是可以的,而反之有可能出错
就是int乘以int默认使用int做的,有可能不够长,所以强制转换。当然这种解释只能是一种常见说法,还需要结合平台,与编译器。这种东西,没有定论的。只有实践才能看到结果。如果实际产品中,显然需要杜绝默认类型转换的发生。
java5.0提供自动装箱拆箱,Integer与int不需强转,程序会自动转换,long和Long也是一样
所以,可以这么干
Long l1 = 100L;
long l2 = l1;
int i1 = (int)l2;
Integer i2 = i1;
另一种根据Integer的api有Integer.valueOf()和new Integer();可以接受int或者String类型
把Long类型转换成int或者String类型就可以了
Long l1 = 100L;
String str = l1.toString();
Integer i1 = Integer.valueOf(str);
Integer i2 = new Integer(str);
int i3 = i2;
不同的数据类型,它的长度是不一样的,他们之间可以发生转换,如果长的转换为短,那么会被截短,相反亦然, char转换为int 需要溢出,int转换为char截短
你应该确定sizeof(int)和sizeof(long),有的机子上面是一样大小的