1. 程式人生 > >byte陣列與int陣列相互轉化

byte陣列與int陣列相互轉化

1、int陣列轉化為byte陣列

0x 16進位制  0b二進位制        2、任何數和1作與值不變 :0&1=0 1&1=1 任何數和0作與清0:1&0=0 0&0=0

     public  static byte []  itob(int  [] intarr)
     {
         int bytelength=intarr.length*4;//長度
         byte []bt=new byte[bytelength];//開闢陣列
         int curint=0;
         for(int j=0,k=0;j<intarr.length;j++,k+=4)
         {
             curint= intarr[j];
              bt[k]=(byte)  ( (curint>>24)& 0b1111_1111);//右移4位,與1作與運算
              bt[k+1]=(byte)  ( (curint>>16)& 0b1111_1111);
              bt[k+2]=(byte)  ( (curint>>8)& 0b1111_1111);
              bt[k+3]= (byte)  ( (curint>>0 )& 0b1111_1111);
         }
         
         
         return bt;
     }

2、byte陣列轉int陣列
     public  static int []  btoi(byte  [] btarr)
     {
         if(btarr.length%4!=0)
         {
             return null;
         }
         int [] intarr  =new int [btarr.length/4];
         
         int i1,i2,i3,i4;
         for(int j=0,k=0;j<intarr.length;j++,k+=4)//j迴圈int		k迴圈byte陣列
         {
             i1=btarr[k];
             i2=btarr[k+1];
             i3=btarr[k+2];
             i4=btarr[k+3];
             
             if(i1<0)
             {
                 i1+=256;
             }
              if(i2<0)
             {
                 i2+=256;
             }
              if(i3<0)
             {
                 i3+=256;
             }
              if(i4<0)
             {
                 i4+=256;
             }
             intarr[j]=(i1<<24)+(i2<<16)+(i3<<8)+(i4<<0);//儲存Int資料型別轉換
             
         }
         return intarr;
      }

3、兩種讀字元檔案檔案方式

	BufferedReader br = new BufferedReader(new FileReader(path),1024 * 1024 * 10);


有中文時處理方式
BufferedReader br=new BufferedReader(new  InputStreamReader(new FileInputStream(pathIn),"GBK"));