黑马程序员技术交流社区

标题: 类型转换的一个小问题 [打印本页]

作者: 刘小峰    时间: 2012-1-3 01:03
标题: 类型转换的一个小问题
本帖最后由 流氓l老醯 于 2012-1-4 06:58 编辑

怎样将一个int转换成一个四字节的byte数组??
作者: 魏志雷    时间: 2012-1-3 01:10
  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);
复制代码

作者: 王冀0127    时间: 2012-1-3 13:45
  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);
复制代码

作者: 詹英鹏    时间: 2012-1-3 14:45
方法有好多,这里有三种
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);
你看看这三种你更喜欢那种就是了
作者: 刘小峰    时间: 2012-1-4 06:56
多谢各位指点{:soso_e183:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2