public class Test2
{
public static void main(String[] args)
{
int v1,v2=1,v3=0;//我把int改成short以后再运行,为什么出现错误?既然可以32位,16位应该也可以啊,把int改成long以后,64也可以 ,就是short不行,求助大家,谢谢!!!
while(v3<64)
{
v1=v2>>v3;
System.out.println(v2+">>"+v3+"="+v1);
v3++;
}
}
}
{
public static void main(String[] args)
{
int v1,v2=1,v3=0;//我把int改成short以后再运行,为什么出现错误?既然可以32位,16位应该也可以啊,把int改成long以后,64也可以 ,就是short不行,求助大家,谢谢!!!
while(v3<64)
{
v1=v2>>v3;
System.out.println(v2+">>"+v3+"="+v1);
v3++;
}
}
}
做左右移位运算时,系统默认是int型是吗?
所以如果比int范围小,必须用强制转换对吗?
?
不对啊,我试着运行了下,v1=(short)(v2>>v3)的话,结果还是在32时才移位啊,不是16位是就移位啊
一种是对int移位,一种是对long移位
如果小于int,则以int为标准