推荐.NET教程: ASP.NET C# 开发环境 Ajax教程 控件开发 统计报表 数据库 Web服务 安装部署 CommunityServer NHibernate DataGrid/GridView 实用代码 VS2005
示例源码 MVC/三层 SqlHelper 入门源码 开源 CMS Ajax/Atlas C#.net 毕业设计 源码 经典代码 商业 本站作品 持久层 随书源码 WebService 英文/汉化 Asp.net2.0

阿牛·乐园

每天进步一点点

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  71 随笔 :: 14 文章 :: 378 评论 :: 13 引用
     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 on 2006-04-22 09:51 阿牛 阅读(282) 评论(2)  编辑 收藏 所属分类: Java

评论

#1楼  2007-03-29 20:17 Q [未注册用户]
private static byte[] getBytes(int val)
{
byte[] ret = new byte[4];
ret[0] = (byte) val & 0xff;
ret[1] = (byte) val >>8;
ret[2] = (byte) val >>16;
ret[3] = (byte) val >>24;
return ret;
}

這樣最快..
  回复  引用    

#2楼  2007-04-08 10:20 cl [未注册用户]
private static int fromBytes(byte[] val){
return (new Byte(val)).intValue;
}

不用写,有现成的〜
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: