int long String與字節數組的相互轉換

public class ConvertByte {
	/**
	 * 一、int與字節數組的相互轉換
	 */
	//int轉爲字節數組
	public static byte[] int2Bytes(int id){
		byte[] arr=new byte[4];  //int型爲四個字節
		/*arr[0]=(byte)((int)(id>>0*8)&0xff);
		arr[1]=(byte)((int)(id>>1*8)&0xff);
		arr[2]=(byte)((int)(id>>2*8)&0xff);
		arr[3]=(byte)((int)(id>>3*8)&0xff);
		*/
		for(int i=0;i<arr.length;i++){  //與上面註釋掉的代碼效果相同
			arr[i]=(byte)((id>>i*8)&0xff);
		}
		return arr;
	}
	//字節數組轉爲int
	public static int bytes2Int(byte[] arr){
		int result=0;
		for(int i=0;i<arr.length;i++){
			result|=(int)((arr[i]&0xff)<<i*8);
		}
		return result;
	}
	
	
	/**
	 * 二、long與字節數組的相互轉換
	 */
	//long轉爲字節數組
	public static byte[] long2Bytes(int id){
		byte[] arr=new byte[8];//long型爲8個字節
		for(int i=0;i<arr.length;i++){
			arr[i]=(byte)((id>>i*8)&0xff);
		}
		return arr;
	}
	//字節數組轉爲long
	public static int bytes2Long(byte[] arr){
		int result=0;
		for(int i=0;i<arr.length;i++){
			result|=(long)((arr[i]&0xff)<<i*8);
		}
		return result;
	}
	public static void main(String[] args) {
		byte[] arr=int2Bytes(8183);
		System.out.print("int型8183的字節數組爲: ");
		System.out.println(arr[0]+","+arr[1]+","+arr[2]+","+arr[3]);  //int轉爲字節數組
		System.out.println(bytes2Int(arr));   //字節數組轉爲int
		
		byte[] arr1=long2Bytes(7888);
		System.out.print("long型7888的字節數組爲: ");
		System.out.println(arr1[0]+","+arr1[1]+","+arr1[2]+","
		+arr1[3]+","+arr1[4]+","+arr1[5]+","+arr1[6]+","+arr1[7]);
		System.out.println(bytes2Long(arr1));
		
		/**
		 * 三、字符串與字節數組的相互轉換
		 */
		//String轉換爲字節數組
		String describe="夢想";  //每個漢字佔2個字節
		byte[] barr=describe.getBytes();
		System.out.print("”夢想“的字節數組爲: ");
		/*for(int i=0;i<barr.length;i++){
			System.out.print(barr[i]+" ");
		}*/
		for(byte b:barr){  //等效於上面的for循環
			System.out.print(b+" ");
		}
		System.out.println();
		//字節數組轉換爲字符串
		String des=new String(barr);
		System.out.println(des);
	}
}

運行結果:

int型8183的字節數組爲: -9,31,0,0
8183
long型7888的字節數組爲: -48,30,0,0,-48,30,0,0
7888
夢想的字節數組爲: -61 -50 -49 -21
夢想


發佈了60 篇原創文章 · 獲贊 12 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章