Here you can find the source of readVarLong(byte[] arr)
public static long readVarLong(byte[] arr)
//package com.java2s; /*/*from w w w . ja va2 s . c om*/ * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with this * work for additional information regarding copyright ownership. The ASF * licenses this file to You under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ import java.nio.ByteBuffer; public class Main { public static long readVarLong(byte[] arr) { return readVarLong(ByteBuffer.wrap(arr)); } public static long readVarLong(byte[] arr, int offset, int length) { return readVarLong(ByteBuffer.wrap(arr, offset, length)); } public static long readVarLong(ByteBuffer buf) { long value = 0L; int i = 0; long b; while (((b = buf.get()) & 0x80L) != 0) { value |= (b & 0x7F) << i; i += 7; } return value | (b << i); } }