Here you can find the source of bytesToNumberLittleEndian(byte[] buffer, int start, int length)
Parameter | Description |
---|---|
buffer | the byte array containing the packet data |
start | the index of the first byte containing a numeric value |
length | the number of bytes making up the value |
@SuppressWarnings("SameParameterValue") public static long bytesToNumberLittleEndian(byte[] buffer, int start, int length)
//package com.java2s; //License from project: Open Source License public class Main { /**/* w w w. j a v a2s . c om*/ * Reconstructs a number that is represented by more than one byte in a network packet in little-endian order, for * the very few protocol values that are sent in this quirky way. * * @param buffer the byte array containing the packet data * @param start the index of the first byte containing a numeric value * @param length the number of bytes making up the value * @return the reconstructed number */ @SuppressWarnings("SameParameterValue") public static long bytesToNumberLittleEndian(byte[] buffer, int start, int length) { long result = 0; for (int index = start + length - 1; index >= start; index--) { result = (result << 8) + unsign(buffer[index]); } return result; } /** * Converts a signed byte to its unsigned int equivalent in the range 0-255. * * @param b a byte value to be considered an unsigned integer * * @return the unsigned version of the byte */ public static int unsign(byte b) { return b & 0xff; } }