Class BitsLong


  • public final class BitsLong
    extends java.lang.Object
    Utilities for manipulating a bit pattern which are held in a 64 bit long
    See Also:
    BitsInt
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static long access​(long bits, int start, int finish)
      Get the bits from start (inclusive) to finish (exclusive), leaving them aligned in the long.
      static long clear​(long bits, int bitIndex)
      Clear the bit specified.
      static long clear​(long bits, int start, int finish)
      Clear the bits specified.
      static boolean isSet​(long bits, int bitIndex)
      Test whether a bit is set
      static long mask​(int start, int finish)
      Create a mask that has ones between bit positions start (inc) and finish (exc), and zeros elsewhere.
      static long maskZero​(int start, int finish)
      Create a mask that has zeros between bit positions start (inc) and finish (exc), and ones elsewhere
      static long pack​(long bits, long value, int start, int finish)
      Place the value into the bit pattern between start and finish and returns the new value.
      static long set​(long bits, int bitIndex)
      Set the bits specified.
      static long set​(long bits, int start, int finish)
      Set the bits from start (inc) to finish (exc) to one
      static boolean test​(long bits, boolean isSet, int bitIndex)
      Test whether a bit is the same as isSet
      static boolean test​(long bits, long value, int start, int finish)
      Test whether a range has a specific value or not
      static long unpack​(long bits, int start, int finish)
      Extract the value packed into bits start (inclusive) and finish (exclusive), the value is returned shifted into the low part of the returned long.
      static long unpack​(java.lang.String str, int startChar, int finishChar)
      Get bits from a hex string.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • unpack

        public static final long unpack​(long bits,
                                        int start,
                                        int finish)
        Extract the value packed into bits start (inclusive) and finish (exclusive), the value is returned shifted into the low part of the returned long. The low bit is bit zero.
        Parameters:
        bits -
        start -
        finish -
        Returns:
        long
      • pack

        public static final long pack​(long bits,
                                      long value,
                                      int start,
                                      int finish)
        Place the value into the bit pattern between start and finish and returns the new value. Leaves other bits alone.
        Parameters:
        bits -
        value -
        start -
        finish -
        Returns:
        long
      • unpack

        public static final long unpack​(java.lang.String str,
                                        int startChar,
                                        int finishChar)
        Get bits from a hex string.
        Parameters:
        str -
        startChar - Index of first character (counted from the left, string style).
        finishChar - Index after the last character (counted from the left, string style).
        Returns:
        long
        See Also:
        access(long, int, int)
      • set

        public static final long set​(long bits,
                                     int bitIndex)
        Set the bits specified.
        Parameters:
        bits - Pattern
        bitIndex -
        Returns:
        Modified pattern
      • set

        public static final long set​(long bits,
                                     int start,
                                     int finish)
        Set the bits from start (inc) to finish (exc) to one
        Parameters:
        bits - Pattern
        start - start (inclusive)
        finish - finish (exclusive)
        Returns:
        Modified pattern
      • test

        public static final boolean test​(long bits,
                                         boolean isSet,
                                         int bitIndex)
        Test whether a bit is the same as isSet
        Parameters:
        bits - Pattern
        isSet - Test whether is set or not.
        bitIndex - Bit index
        Returns:
        Boolean
      • isSet

        public static final boolean isSet​(long bits,
                                          int bitIndex)
        Test whether a bit is set
        Parameters:
        bits - Pattern
        bitIndex - Bit index
        Returns:
        Boolean
      • test

        public static final boolean test​(long bits,
                                         long value,
                                         int start,
                                         int finish)
        Test whether a range has a specific value or not
        Parameters:
        bits - Pattern
        value - Value to test for
        start - start (inclusive)
        finish - finish (exclusive)
        Returns:
        Boolean
      • access

        public static final long access​(long bits,
                                        int start,
                                        int finish)
        Get the bits from start (inclusive) to finish (exclusive), leaving them aligned in the long. See also unpack, returns the value found at that place.
        Parameters:
        bits -
        start -
        finish -
        Returns:
        long
        See Also:
        unpack(long, int, int)
      • clear

        public static final long clear​(long bits,
                                       int bitIndex)
        Clear the bit specified.
        Parameters:
        bits -
        bitIndex -
        Returns:
        long
      • clear

        public static final long clear​(long bits,
                                       int start,
                                       int finish)
        Clear the bits specified.
        Parameters:
        bits -
        start -
        finish -
        Returns:
        long
      • mask

        public static final long mask​(int start,
                                      int finish)
        Create a mask that has ones between bit positions start (inc) and finish (exc), and zeros elsewhere.
        Parameters:
        start -
        finish -
        Returns:
        long
      • maskZero

        public static final long maskZero​(int start,
                                          int finish)
        Create a mask that has zeros between bit positions start (inc) and finish (exc), and ones elsewhere
        Parameters:
        start -
        finish -
        Returns:
        long