A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘小峰 黑马帝   /  2012-1-3 01:03  /  2475 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 流氓l老醯 于 2012-1-4 06:58 编辑

怎样将一个int转换成一个四字节的byte数组??

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

5 个回复

倒序浏览
  1. int   myInt;
  2. byte[]   bytes   =   new   byte[4];
  3. bytes   [0]=(byte)(   (myInt   > > >   24   )   &&   0xff);
  4. bytes   [1]=(byte)(   (myInt   > > >   16   )   &&   0xff);
  5. bytes   [2]=(byte)(   (myInt   > > >   8   )   &&   0xff);
  6. bytes   [3]=(byte)(   (myInt   > > >   0   )   &&   0xff);
复制代码

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
  1. int i =你要输入的值;
  2. byte[] result = new byte[4];
  3. result[0] = (byte)(i & 0xFF);
  4. result[2] = (byte)((i >> 8) & 0xFF);
  5. result[3] = (byte)((i >> 16) & 0xFF);
  6. result[4] = (byte)((i >> 24) & 0xFF);
复制代码

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
方法有好多,这里有三种
1,是直接进行 & 操作
int   x=123;
byte[]   bitstr=new   byte[4];
bitstr[0]=(byte)(x&ff000000);
bitstr[1]=(byte)(x&00ff0000);
bitstr[2]=(byte)(x&0000ff00);
bitstr[3]=(byte)(x&000000ff);
第二种就是位移操作
byte     byteArray[]   =   new   byteArray[4];
byteArray[0]   =   myint;
byteArray[1]   =   myint> > 1;
byteArray[2]   =   myint> > 2;
byteArray[3]   =   myint> > 3;
第三种就是两者的结合
byte[]   bytes   =   new   byte[4];
bytes   [0]=(byte)(   (myInt   > > >   24   )   0xff);
bytes   [1]=(byte)(   (myInt   > > >   16   )   0xff);
bytes   [2]=(byte)(   (myInt   > > >   8   )   0xff);
bytes   [3]=(byte)(   (myInt   > > >   0   )   0xff);
你看看这三种你更喜欢那种就是了

评分

参与人数 1技术分 +2 收起 理由
吴上储 + 2

查看全部评分

回复 使用道具 举报
多谢各位指点{:soso_e183:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马