int型的只会是一个字节,而不是字节数组,
你把它转化为Integer对象,然后它有一个byteValue() 方法可以返回对应的字节。

解决方案 »

  1.   

    public static void main(String[] args) {
            int source = 0x1001;
            byte[] result = new byte[ 4 ];
            for( int i = 0; i < 4; i++ ){
                result[ i ] = (byte)(source >> ( 24 - i*8 ));
            }
            for( int i = 0; i < 4; i++ ){
                System.out.println( result[ i ] );
            }
        }
      

  2.   

    //把int转成32位2进制,然后在变成byte数组。
        public static byte[] toByteArray(int n) {
         String binaryStr=formatString(Integer.toString(n,2),32,'0');
         System.out.println(binaryStr);
         byte[] result=new byte[4];
         int i=0;
         while(binaryStr.length()-8>=0) {
             String str=binaryStr.substring(0,8);
             result[i++]=Integer.valueOf(str,2).byteValue();
             binaryStr=binaryStr.substring(8);
         }
         return result;
        }
    public static String formatString(String str, int size, char c) {  //格式化输出
         if(str.length()>=size)
           return str;
    String result;
    char[] imp =new char[size-str.length()];
    for(int i=0;i<imp.length;i++)
        imp[i]=c;
    result=new String(imp);
      result += str;
      return result;
        }调用:
    byte[] byteTemp=toByteArray(1024);
    for(int i=0;i<byteTemp.length;i++)
        System.out.println(byteTemp[i]);
    结果:0040
      

  3.   

    byte[] b=new byte[4];
    b[0]=(byte)(i&0x000000FF);
    b[1]=(byte)((i>>8)&0x000000FF);
    b[2]=(byte)((i>>16)&0x000000FF);
    b[3]=(byte)((i>>24)&0x000000FF);
      

  4.   

    先转化成integer在做字节数组。