[原创]Java下X86机,Bytes和Int的转换

     Java默认的从Int32到Byte[4]的转换,是高位在前。而在C#等Window程序通过网络发送数据时,Int32数写入流时,写得一般是低位在前,高位在后。
     为了使它们能够正确的交互,需要用Java按照X86的习惯来处理Byte[4]和Int32之间的相互转换。
    /*
作者:阿牛(牛昆亮) QQ:273352165 MSN:niukl@hotmail.com

声明:可以免费使用,请您保留此信息
    如果您有什么改过,记得告诉我!
*/
        private static byte[] getBytes(int val)
    
{
        
byte[] ret = new byte[4];
        
int v = val;
        ret[
0= (byte)(v & 0x00ff);
        ret[
1= (byte)(v>>=8 & 0x00ff);
        ret[
2= (byte)(v>>=8 & 0x00ff);
        ret[
3= (byte)(v>>=8 & 0x00ff);
        
return ret;
    }

    
    
private static int fromBytes(byte[] val)
    
{
        
int ret = 0;
        ret 
|= (int)(val[0& 0xff<< 0;
        ret 
|= (int)(val[1& 0xff<< 8;
        ret 
|= (int)(val[2& 0xff<< 16;
        ret 
|= (int)(val[3& 0xff<< 24;
        
        
return ret;
    }

posted @ 2006-04-22 09:51  阿牛  阅读(1178)  评论(2编辑  收藏  举报