byte陣列與int陣列相互轉化
阿新 • • 發佈:2018-12-30
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"));