org.openjena.atlas.lib
Class BitsLong

java.lang.Object
  extended by org.openjena.atlas.lib.BitsLong

public final class BitsLong
extends Object

Utilities for manipulating a bit pattern which held in a 64 bit long (java.util.BitSet does not allow getting the pattern as a long)


Method Summary
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 start, int finish)
           
static boolean isSet(long bits, int bitIndex)
           
static long mask(int start, int finish)
          Create a mask that has ones between bit positions start (inc) and finish (exc)
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; leaves other bits alone.
static long set(long bits, int bitIndex)
          Set the bits specificied.
static long set(long bits, int start, int finish)
          Set the bits from string (inc) to finish (exc) to one
static boolean test(long bits, boolean isSet, int bitIndex)
           
static boolean test(long bits, long value, int start, int finish)
           
static long unpack(long bits, int start, int finish)
          Extract the value packed into bits start (inclusive) and finish (exclusive), the value is returned the low part of the returned long.
static long unpack(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 the low part of the returned long. The low bit is bit zero.


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; leaves other bits alone.


unpack

public static final long unpack(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

set

public static final long set(long bits,
                             int bitIndex)
Set the bits specificied.

Parameters:
bits - Pattern
bitIndex -
Returns:
Modified pattern

set

public static final long set(long bits,
                             int start,
                             int finish)
Set the bits from string (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)

isSet

public static final boolean isSet(long bits,
                                  int bitIndex)

test

public static final boolean test(long bits,
                                 long value,
                                 int start,
                                 int finish)

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.


clear

public static final long clear(long bits,
                               int start,
                               int finish)

mask

public static final long mask(int start,
                              int finish)
Create a mask that has ones between bit positions start (inc) and finish (exc)


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



Licenced under the Apache License, Version 2.0