public BigInteger getBigInteger(int offset, int byteLength, boolean unsigned) {
        byte[] bytes = new byte[byteLength];
        int startIndex = offset + position;
        for (int i = startIndex + byteLength - 1, j = 0; i >= startIndex; i--, j++) {
            bytes[j] = array[i];
        }
        return unsigned ? new BigInteger(1, bytes) : new BigInteger(bytes);
    }
Converts {@code byteLength} bytes(little-endian) starting from
{@code position() + offset} to big integer.

@param offset     zero-based relative offset, 1 means the second byte
                  starting from {@link #position()}
@param byteLength bytes to convert
@param unsigned   true if it's unsigned big integer; false otherwise
@return non-null big integer
clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseByteBuffer.java