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));
}
}