public static long readLongSigned(ByteBuffer byteBuffer){
  byte v=byteBuffer.get();
  long accumulator=(~((long)(((v >> 6) & 1) - 1))) & 0xFFFFFFFFFFFFFF80l;
  return (v < 0) ? accumulator | (v & 0x7F) : readLongSignedTail((accumulator | v) << 7,byteBuffer);
}

public static long readLongSigned ( ByteBuffer byteBuffer ) { byte v = byteBuffer . get ( ) ; long accumulator = ( ~ ( ( long ) ( ( ( v > > 6 ) & 1 ) - 1 ) ) ) & 0xFFFFFFFFFFFFFF80l ; return ( v < 0 ) ? accumulator | ( v & 0x7F ) : readLongSignedTail ( ( accumulator | v ) << 7 , byteBuffer ) ; }
parse a 64 bit signed value from the buffer
