为什么结果会这样 请发表意见
我是想把一个int按字节存储在byte里,可是复原后的数很奇怪,有时候能复原,有时候不能复原。为什么?
程序如下:
public class TEst
{
public static void main(String[] args)
{
int t;
t=456595487;
System.out.println(t+ ": "+test(t));
t=456595436;
System.out.println(t+ ": "+test(t));
}
public static int test(int t1)
{
int t2=0xffffffff;
byte[] b=new byte[4];
for(int i=0;i <4;i++)
{
b[i] = (byte) t1;
t1=t1> > 8;
}
for(int i=3;i> =0;i--)
{
t2=t2 < <8;
t2=t2+b[i];
}
return t2;
}
}
结果如下:
456595487:456595487
456595436:456595180
------解决方案--------------------up
------解决方案--------------------我运行了结果和lz一样。
我想可以与byte和int的存储空间大小有关吧~~
------解决方案--------------------> > 是算术位移,> > > 是逻辑位移
------解决方案--------------------mark