java.lang.Object
com.pnfsoftware.jeb.util.primitives.Longs

public class Longs extends Object
Utility methods for longs.
  • Constructor Details

    • Longs

      public Longs()
  • Method Details

    • fromInts

      public static long fromInts(int v0, int v1)
      Create a long from two ints. See toInts(long) for the reverse operation.
      Parameters:
      v0 - low 32 bits
      v1 - high 32 bits
      Returns:
      the composed long value
    • toInts

      public static int[] toInts(long v)
      Create two ints from a long. See fromInts(int, int) for the reverse operation.
      Parameters:
      v - long value
      Returns:
      an array of two ints.
    • toUnsignedString

      public static String toUnsignedString(long value)
      Convert a long to its unsigned decimal string representation.
      Parameters:
      value - long value
      Returns:
      the unsigned decimal representation of value
    • toUnsignedBigInteger

      public static BigInteger toUnsignedBigInteger(long v)
      Convert a long treated as unsigned to a big integer.
      Parameters:
      v - long value
      Returns:
      the unsigned value as a positive big integer
    • compareUnsigned

      public static int compareUnsigned(long x, long y)
      Compare two longs as unsigned.
      Parameters:
      x - first value
      y - second value
      Returns:
      a negative value, zero, or a positive value if x is respectively below, equal to, or above y in unsigned order
    • maxUnsigned

      public static long maxUnsigned(long x, long y)
      Retrieve the max of two longs treated as unsigned.
      Parameters:
      x - first value
      y - second value
      Returns:
      the greater unsigned value
    • minUnsigned

      public static long minUnsigned(long x, long y)
      Retrieve the min of two longs treated as unsigned.
      Parameters:
      x - first value
      y - second value
      Returns:
      the smaller unsigned value
    • divUnsigned

      public static long divUnsigned(long dividend, long divisor)
      Divide two longs treated as unsigned.
      Parameters:
      dividend - dividend treated as unsigned
      divisor - divisor treated as unsigned
      Returns:
      the unsigned quotient
    • remUnsigned

      public static long remUnsigned(long dividend, long divisor)
      Get the division remainder of two longs treated as unsigned.
      Parameters:
      dividend - dividend treated as unsigned
      divisor - divisor treated as unsigned
      Returns:
      the unsigned remainder
    • formatHexCollection

      public static String formatHexCollection(Collection<Long> list)
      Uses a "0x" prefix, ", " separator.
      Parameters:
      list - collection of longs
      Returns:
      the formatted hexadecimal collection
    • formatLongCollection

      public static String formatLongCollection(Collection<Long> collection, Integer radix, String pfx, String sfx, String separator)
      Format a collection of longs.
      Parameters:
      collection - collection of longs
      radix - optional, default=10
      pfx - optional, default=none
      sfx - optional, default=none
      separator - optional, default=", "
      Returns:
      the formatted collection
    • equals

      public static boolean equals(Long a, Long b)
      Safe equality.
      Parameters:
      a - may be null
      b - may be null
      Returns:
      true if both a and b are null or if their long values are equal
    • equals

      public static boolean equals(Long a, long b)
      Safe equality.
      Parameters:
      a - may be null
      b - value to compare with
      Returns:
      true if a is not null and its long value equal to b
    • equals

      public static boolean equals(long a, Long b)
      Safe equality.
      Parameters:
      a - value to compare with
      b - may be null
      Returns:
      true if b is not null and its long value equal to a
    • range

      public static Iterable<Long> range(long start, long end, long step)
      Generate an iterable range of integers.
      Parameters:
      start - first value, inclusive
      end - exclusive
      step - increment (can be negative, cannot be zero)
      Returns:
      an iterable range
    • range

      public static Iterable<Long> range(long start, long end)
      Generate an incremental range of integers.
      Parameters:
      start - first value, inclusive
      end - exclusive
      Returns:
      an iterable range
    • range

      public static Iterable<Long> range(long cnt)
      Generate an incremental range of integers from 0 to the provided count.
      Parameters:
      cnt - exclusive upper bound
      Returns:
      an iterable range from 0 to cnt