Class LongUtils

java.lang.Object
org.roaringbitmap.longlong.LongUtils

public class LongUtils extends Object
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final long
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    compareHigh(byte[] a, byte[] b)
    compare according to the dictionary order
    static long
    fromBDBytes(byte[] work)
    get the long from the big endian representation bytes
    static byte[]
    highPart(long num)
    get the high 48 bit parts of the input data
    static byte[]
    highPartInPlace(long num, byte[] high48)
    set the high 48 bit parts of the input number into the given byte array
    static long
    initialize a long value with the given fist 32 bit
    static boolean
    isMaxHigh(byte[] high48)
    checks if given high48 is the maximum possible one (e.g.
    static long
    shift the long by left the container size amount so we use the value after have done our steps
    static char
    lowPart(long num)
    get the low 16 bit parts of the input data
    static int
     
    static long
    shift the long right by the container size amount so we can loop across containers by +1 steps
    static byte[]
    toBDBytes(long v)
    to big endian bytes representation
    static long
    toLong(byte[] high, char low)
    reconstruct the long data

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • MAX_UNSIGNED_INT

      public static final long MAX_UNSIGNED_INT
  • Constructor Details

    • LongUtils

      public LongUtils()
  • Method Details

    • highPart

      public static byte[] highPart(long num)
      get the high 48 bit parts of the input data
      Parameters:
      num - the long number
      Returns:
      the high 48 bit
    • lowPart

      public static char lowPart(long num)
      get the low 16 bit parts of the input data
      Parameters:
      num - the long number
      Returns:
      the low 16 bit
    • toLong

      public static long toLong(byte[] high, char low)
      reconstruct the long data
      Parameters:
      high - the high 48 bit
      low - the low 16 bit
      Returns:
      the long data
    • toBDBytes

      public static byte[] toBDBytes(long v)
      to big endian bytes representation
      Parameters:
      v - a long value
      Returns:
      the input long value's big endian byte array representation
    • fromBDBytes

      public static long fromBDBytes(byte[] work)
      get the long from the big endian representation bytes
      Parameters:
      work - the byte array
      Returns:
      the long data
    • compareHigh

      public static int compareHigh(byte[] a, byte[] b)
      compare according to the dictionary order
      Parameters:
      a - a byte array
      b - another byte array
      Returns:
      1 indicates a greater than b,0 indicates equal,-1 indicates a smaller than b
    • initWithFirst4Byte

      public static long initWithFirst4Byte(int v)
      initialize a long value with the given fist 32 bit
      Parameters:
      v - first 32 bit value
      Returns:
      a long value
    • rightShiftHighPart

      public static long rightShiftHighPart(long num)
      shift the long right by the container size amount so we can loop across containers by +1 steps
      Parameters:
      num - long being treated as unsigned long
      Returns:
      value shifted out of value space into container high part
    • leftShiftHighPart

      public static long leftShiftHighPart(long num)
      shift the long by left the container size amount so we use the value after have done our steps
      Parameters:
      num - uint48 to be shift back into uint64
      Returns:
      value shifted out of container high part back into value space
    • maxLowBitAsInteger

      public static int maxLowBitAsInteger()
    • highPartInPlace

      public static byte[] highPartInPlace(long num, byte[] high48)
      set the high 48 bit parts of the input number into the given byte array
      Parameters:
      num - the long number
      high48 - the byte array
      Returns:
      the high 48 bit
    • isMaxHigh

      public static boolean isMaxHigh(byte[] high48)
      checks if given high48 is the maximum possible one (e.g. it is the case for -1L, which is the maximum unsigned long)
      Parameters:
      high48 - the byte array
      Returns:
      true if this the maximum high part