java.io.Bits類 數據類型轉換

packet java.io;

class Bits;

Bits類位於java.io包下功能主要是字節轉換 將字節數組轉換爲基本數據類型 或者將基本數據類型轉爲byte數組(全部爲網絡字節序);

Bits類源碼

package java.io;

class Bits {
	/**
	 * 將字節轉爲Boolean
	 * @param var0 源數組
	 * @param var1 偏差值
	 * @return 
	 */
	static boolean getBoolean(byte[] var0, int var1) {
		return var0[var1] != 0;
	}
	
	/**
	 * 將數組轉爲char類型
	 * @param var0 源數組
	 * @param var1 偏差值
	 * @return
	 */
	static char getChar(byte[] var0, int var1) {
		return (char) ((var0[var1 + 1] & 255) + (var0[var1] << 8));
	}
	
	/**
	 * 將數組轉化爲short類型
	 * @param var0 源數組
	 * @param var1 偏差值
	 * @return
	 */
	static short getShort(byte[] var0, int var1) {
		return (short) ((var0[var1 + 1] & 255) + (var0[var1] << 8));
	}
	
	/**
	 * 將byte數組轉爲int
	 * @param var0 源數組
	 * @param var1 偏差值
	 * @return
	 */
	static int getInt(byte[] var0, int var1) {
		return (var0[var1 + 3] & 255) + ((var0[var1 + 2] & 255) << 8) + ((var0[var1 + 1] & 255) << 16)
				+ (var0[var1] << 24);
	}
	
	/**
	 * 將byte數組轉爲float
	 * @param var0 源數組
	 * @param var1 偏差值
	 * @return
	 */
	static float getFloat(byte[] var0, int var1) {
		return Float.intBitsToFloat(getInt(var0, var1));
	}
	
	/**
	 * 將byte數組轉爲long類型
	 * @param var0 源數組
	 * @param var1 偏差值
	 * @return
	 */
	static long getLong(byte[] var0, int var1) {
		return ((long) var0[var1 + 7] & 255L) + (((long) var0[var1 + 6] & 255L) << 8)
				+ (((long) var0[var1 + 5] & 255L) << 16) + (((long) var0[var1 + 4] & 255L) << 24)
				+ (((long) var0[var1 + 3] & 255L) << 32) + (((long) var0[var1 + 2] & 255L) << 40)
				+ (((long) var0[var1 + 1] & 255L) << 48) + ((long) var0[var1] << 56);
	}
	
	/**
	 * 將byte數組轉爲double類型
	 * @param var0 源數組
	 * @param var1 偏差值
	 * @return
	 */
	static double getDouble(byte[] var0, int var1) {
		return Double.longBitsToDouble(getLong(var0, var1));
	}
	
	/**
	 * 將Boolean類型轉爲byte類型 並存入目標數組
	 * @param var0 目標數組
	 * @param var1 偏差值
	 * @param var2 待轉換Boolean
	 */
	static void putBoolean(byte[] var0, int var1, boolean var2) {
		var0[var1] = (byte) (var2 ? 1 : 0);
	}

	/**
	 * 將char類型轉爲byte類型 並存入目標數組
	 * @param var0 目標數組
	 * @param var1 偏差值
	 * @param var2 待轉換char
	 */
	static void putChar(byte[] var0, int var1, char var2) {
		var0[var1 + 1] = (byte) var2;
		var0[var1] = (byte) (var2 >>> 8);
	}

	/**
	 * 將short類型轉爲byte數組 並存入目標數組
	 * @param var0
	 * @param var1
	 * @param var2
	 */
	static void putShort(byte[] var0, int var1, short var2) {
		var0[var1 + 1] = (byte) var2;
		var0[var1] = (byte) (var2 >>> 8);
	}
	
	/**
	 * 將int類型轉爲byte數組 並存入目標數組
	 * @param var0 目標數組
	 * @param var1 偏差值
	 * @param var2 待轉換int
	 */
	static void putInt(byte[] var0, int var1, int var2) {
		var0[var1 + 3] = (byte) var2;
		var0[var1 + 2] = (byte) (var2 >>> 8);
		var0[var1 + 1] = (byte) (var2 >>> 16);
		var0[var1] = (byte) (var2 >>> 24);
	}
	
	/**
	 * 將float類型轉爲byte數組 並存入目標數組
	 * @param var0 目標數組
	 * @param var1 偏差值
	 * @param var2 待轉換float
	 */
	static void putFloat(byte[] var0, int var1, float var2) {
		putInt(var0, var1, Float.floatToIntBits(var2));
	}

	/**
	 * 將long類型轉爲byte數組 並存入目標數組
	 * @param var0 目標數組
	 * @param var1 偏差值
	 * @param var2 待轉換long
	 */
	static void putLong(byte[] var0, int var1, long var2) {
		var0[var1 + 7] = (byte) ((int) var2);
		var0[var1 + 6] = (byte) ((int) (var2 >>> 8));
		var0[var1 + 5] = (byte) ((int) (var2 >>> 16));
		var0[var1 + 4] = (byte) ((int) (var2 >>> 24));
		var0[var1 + 3] = (byte) ((int) (var2 >>> 32));
		var0[var1 + 2] = (byte) ((int) (var2 >>> 40));
		var0[var1 + 1] = (byte) ((int) (var2 >>> 48));
		var0[var1] = (byte) ((int) (var2 >>> 56));
	}
	/**
	 * 將double類型轉爲byte數組 並存入目標數組
	 * @param var0 目標數組
	 * @param var1 偏差值
	 * @param var2 待轉換double
	 */
	static void putDouble(byte[] var0, int var1, double var2) {
		putLong(var0, var1, Double.doubleToLongBits(var2));
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章