首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为啥结果会这样 请发表意见

2011-12-06 
为什么结果会这样 请发表意见我是想把一个int按字节存储在byte里,可是复原后的数很奇怪,有时候能复原,有时

为什么结果会这样 请发表意见
我是想把一个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

热点排行