class convert
{
static int[] _MoveX={0xff,0xff00,0x0ff0000,0xff000000};
static byte[] uintoBytes(int IntegerSize)
{
    byte Byte4Size[] = new byte[4];
    for(int i = 0 ;i<4;i++)
    Byte4Size[i] = (byte)((IntegerSize & _MoveX[i]) >> (i*8));
    return Byte4Size;
}
static int byte4toInt(byte[] Byte4Size)
{
   int integer = 0;
   for(int i = 0;i<4;i++){
int int_temp = 0;
int_temp= int_temp | ((int)Byte4Size[i] & 0xff);
integer = integer | (int_temp<<(i*8));
  }
  return integer;
}
}

解决方案 »

  1.   

    int intX   = 10000;
    byte byteY = (byte)intX;
    //It is ok
      

  2.   

    int    i = 0x12345678;
    byte[] b = new byte[4];b[0] = new Integer(i & 0x000000FF).byteValue();
    b[1] = new Integer((i & 0x0000FF00) >>> 8).byteValue();
    b[2] = new Integer((i & 0x000000FF) >>> 16).byteValue();
    b[3] = new Integer((i & 0x000000FF) >>> 24).byteValue();Anyway, hope this will be of use.
      

  3.   

    to all:
    大家的方法我晚上回去后都试试to lgcheng(dragon):
    一个字节是放不下超过256的数的吧!
      

  4.   

    to skyyoung(路人甲):
    BigInteger.toByteArray()  不能总是将一个int值变为4个byte
      

  5.   

    to Dureek(普博):为什么不是:
    b[0] = new Integer(i & 0x000000FF).byteValue();
    b[1] = new Integer((i & 0x0000FF00) >>> 8).byteValue();
    b[2] = new Integer((i & 0x00FF0000) >>> 16).byteValue();
    b[3] = new Integer((i & 0xFF000000) >>> 24).byteValue();
      

  6.   

    wow ... it's my fault ;]
    Thanks :)
      

  7.   

    如果是负数,能用?>>>移位?