int int_ = 1;
    Integer i = new Integer(int_);
    byte b = i.byteValue();

解决方案 »

  1.   

    这个出来是16bit的吗,会不会是8bit的啊?
      

  2.   

    int 32 bit
    byte 8 bitpublic static int byteArr2Int(byte[] arrB)
    {
        if (arrB==null || arrB.length!=4) 
        {
         return 0;
        }
        int i = (arrB[0]<<24) + (arrB[1]<<16) + (arrB[2]<<8) + arrB[3];
        return i;
    }public static byte[] int2ByteArr(int i)
    {
        byte[] arrB = new byte[4];
        arrB[0] = (byte)(i>>24);
        arrB[1] = (byte)(i>>16);
        arrB[2] = (byte)(i>>8);
        arrB[3] = (byte)i;
        return arrB;
    }也可参见:http://expert.csdn.net/Expert/topic/1382/1382846.xml?temp=.7109033
      

  3.   

    4个字节的int型,肯定是一个整数
    数字比较小,2个字节足够了,前面2个字节没用
    定义一个数组byte [] b=new byte[2]
    然后将int型数据移位>>8将第3个字节放到b[0]
    将第四位放到b[1]
    具体代码如下
    byte[] b=new byte[2];
    int a=3068;
    b[0]=(byte)(a>>8);
    b[1]=(byte)a;然后通过socket 发送出去 outStream.write(b)
    接收端收到以后
    byte[] b=new byte[2];
    inStream.read(b);
    int i=(b[0]<<8)+b[1];为什么收到的i跟发出的a不总是一样,有时候一样,有时候不一样