BitBufferHelper { public static long toNumber(byte[] array) { long ret = 0; long length = array.length; int value = 0; for (int i = 0; i < length; i++) { value = array[i]; if (value < 0) { value += 256; } ret = ret | (long) value << (length - i - 1) * NetUtils.NUM_BITS_IN_A_BYTE; } return ret; } private  BitBufferHelper(); static byte getByte(byte[] data); static short getShort(byte[] data, int numBits); static short getShort(byte[] data); static int getInt(byte[] data, int numBits); static int getInt(byte[] data); static long getLong(byte[] data, int numBits); static long getLong(byte[] data); static byte[] getBits(byte[] data, int startOffset, int numBits); static void setByte(byte[] data, byte input, int startOffset, int numBits); static void setBytes(byte[] data, byte[] input, int startOffset, int numBits); static int getMSBMask(int numBits); static int getLSBMask(int numBits); static long toNumber(byte[] array); static long toNumber(@Nonnull byte[] array, int numBits); static byte[] toByteArray(Number input); static byte[] toByteArray(Number input, int numBits); static byte[] shiftBitsToMSB(byte[] inputBytes, int numBits); static byte[] shiftBitsToLSB(byte[] inputBytes, int numBits); static void insertBits(byte[] data, byte[] inputdataLSB, int startOffset, int numBits); static void checkExceptions(byte[] data, int startOffset, int numBits); static final long BYTE_MASK; }
@Test public void testToInt() { byte[] data = { 1 }; Assert.assertTrue(BitBufferHelper.toNumber(data) == 1); byte[] data2 = { 1, 1 }; Assert.assertTrue(BitBufferHelper.toNumber(data2) == 257); byte[] data3 = { 1, 1, 1 }; Assert.assertTrue(BitBufferHelper.toNumber(data3) == 65793); }