自己从百度上零零散散整的项目的工具类,不多说,直接贴代码,有问题的,望指教
private static ByteBuffer buffer = ByteBuffer.allocate(8); /* byte字节数组转double */ public static Double getDouble(byte[] temp) { long value = 0; for (int i = 0; i < temp.length; i++) { value |= ((long) (temp[i] & 0xff)) << (8 * i); } double d = Double.longBitsToDouble(value); return d; } /* double转byte字节数组 */ public static byte[] putDouble(byte[] arr, double number, int index) { int len = index - 1; int arrLen = arr.length; boolean b = isOutOfArrLength(arrLen, len); // 判断当前数组长度是否大于转换的数组长度 Long l = Double.doubleToLongBits(number); if (b) { for (int i = 0; i <= 7; i++) { arr[i] = l.byteValue(); l = l >> 8; } } else { // 如果当前数组长度小于转换的数组长度,就根据index截取转换的数组元素 l = l >> (8 * index); for (int j = arrLen - index - 1; j >= 0; j--) { arr[j] = l.byteValue(); l = l >> 8; } } // for (byte c : arr) { // System.out.println("c--->" + c); // } return arr; } public static boolean isOutOfArrLength(int arrLength, int index) { boolean b; if (arrLength > index) { b = true; } else { b = false; } return b; } /* 16进制转二进制 */ public static String convertHexToBinary3(String hexString) { long l = Long.parseLong(hexString, 16); String binaryString = Long.toBinaryString(l); // int shouldBinaryLen = hexString.length() * 4; StringBuffer addZero = new StringBuffer(); // int addZeroNum = shouldBinaryLen - binaryString.length(); /* * for (int i = 1; i <= addZeroNum; i++) { addZero.append("0"); } */ return addZero.toString() + binaryString; } /* 二进制转10进制 */ public static int er(int s) { int sum = 0; int i = 0; while (s != 0) { sum = (int) (sum + s % 10 * (Math.pow(2, i))); s = s / 10; i++; } return sum; } /* 10转成16进制 */ public static String shi(String str) { StringBuffer sb = new StringBuffer(str.length()); String tmp = null; for (int i = 0; i < str.length(); i = i + 2) { tmp = str.substring(i, i + 2); String strtmp = Integer.toHexString(Integer.parseInt(tmp)); sb.append(strtmp); } // System.out.println(sb.toString()); return sb.toString(); } /* 16进制转成10进制 */ public static void main(String[] args) { long l = 12340006; byte[] bytes = Conversion.longToBytes(l); for (byte aByte : bytes) { System.out.println(aByte); } } /* int转byte[] */ public static byte[] intToBytes(int value) { byte[] bytes = new byte[4]; bytes[3] = (byte) (value >> 24); bytes[2] = (byte) (value >> 16); bytes[1] = (byte) (value >> 8); bytes[0] = (byte) (value >> 0); return bytes; } /* short转byte[] */ public static byte[] shortToByte(short value) { byte[] bytes = new byte[2]; bytes[1] = (byte) (value >> 8); bytes[0] = (byte) (value >> 0); return bytes; } /* byte转16进制 */ public static String byteToHex(byte b) { int i = b & 0xFF; return Integer.toHexString(i); } /* byte[]转int */ public static int bytesToInt(byte[] bytes) { return (int) ((((bytes[3] & 0xff) << 24) | ((bytes[2] & 0xff) << 16) | ((bytes[1] & 0xff) << 8) | ((bytes[0] & 0xff) << 0))); } /* byte[]转short */ public static short bytesToShort(byte[] bytes) { return (short) (((bytes[1] << 8) | bytes[0] & 0xff)); } /* byte 数组与 long 的相互转换 */ public static byte[] longToBytes(long x) { /* buffer.putLong(0, x); buffer.flip();//need flip return buffer.array();*/ byte[] b = new byte[8]; for (int i = 0; i < b.length; i++) { b[i] = new Long(x & 0xff).byteValue();// x = x >> 8; // 向右移8位 } return b; } public static long bytesToLong(byte[] bytes) { buffer.put(bytes, 0, bytes.length); buffer.flip();//need flip return buffer.getLong(); }