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