int (int startIndex, int sizeOf, byte[] bytes) { int result = 0; boolean isNegative = bytes[startIndex] < 0; if (isNegative) { for (int i = 0; i < 4 - sizeOf; i++) { result <<= BYTE_OFFSET; result |= BYTE_MASK; } } for (int i = startIndex; i < startIndex + sizeOf; i++) { result <<= BYTE_OFFSET; result |= bytes[i] & BYTE_MASK; } return result; }