public static double getDouble(byte[] b, int offset) {
		if (isBlank(b)) {
			throw new IllegalArgumentException("blank byte array.");
		}
		if (offset < 0) {
			throw new IllegalArgumentException("invalid array offset:" + offset + ".");
		}
		long out = b[0] < 0 ? -1L : 0L;
		for (int l = b.length - offset, i = l < DOUBLE_BYTE_LEN ?  DOUBLE_BYTE_LEN - l : 0, off = offset - i; i < DOUBLE_BYTE_LEN; i++) {
			out <<= Byte.SIZE;
			out |= (b[off + i] & 0xff); 
		}
		return Double.longBitsToDouble(out);
	}