|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object jwutil.math.BitString
public final class BitString
BitString
implements a vector of bits much like java.util.BitSet
,
except that this implementation actually works. Also, BitString
has some groovy features which BitSet
doesn't; mostly related to
efficient iteration over true
and false
components.
Each component of the BitString
has a boolean value.
The bits of a BitString
are indexed by non-negative
integers (that means they are zero-based, of course). Individual
indexed bits can be examined, set, or cleared. One
BitString
may be used to modify the contents of another
BitString
through logical AND, logical inclusive OR,
and logical exclusive OR operations.
By default, all bits in the set initially have the value
false
.
Every bit set has a current size, which is the number of bits of space currently in use by the bit set. Note that the size is related to the implementation of a bit set, so it may change with implementation. The length of a bit set related to the logical length of a bit set and is defined independently of implementation.
Nested Class Summary | |
---|---|
class |
BitString.BackwardBitStringIterator
Iterator for iterating through a bit string in backward order. |
static class |
BitString.BitStringIterator
Abstract bit string iterator class. |
class |
BitString.ForwardBitStringIterator
Iterator for iterating through a bit string in forward order. |
Constructor Summary | |
---|---|
BitString(int nbits)
Creates an empty string with the specified size. |
Method Summary | |
---|---|
boolean |
and(BitString set)
Logically ANDs this bit set with the specified set of bits. |
BitString.BackwardBitStringIterator |
backwardsIterator()
Returns an iterator that iterates through the bits in backward order. |
BitString.BackwardBitStringIterator |
backwardsIterator(int i)
Returns an iterator that iterates through the bits in backward order, starting at the given index. |
static int |
bsf(int b)
Utility function to return the index of the first (lowest-order) one bit in the given integer. |
static int |
bsr(int v)
Utility function to return the index of the last one bit in the given integer. |
void |
clear(int bit)
Clears a bit. |
void |
clearAll()
Clears all bits. |
void |
clearUpTo(int bit)
Clears all bits up to and including the given bit. |
java.lang.Object |
clone()
Clones the BitString. |
boolean |
contains(BitString other)
Check if this set contains all bits of the given set. |
void |
copyBits(BitString set)
Copies the values of the bits in the specified set into this set. |
boolean |
equals(java.lang.Object obj)
Compares this object against the specified object. |
int |
firstSet()
Returns the first index in the bit string which is set, or -1 if there is no such index. |
int |
firstSet(int where)
Returns the first index greater than where in the
bit string which is set, or -1 if there is no such index. |
boolean |
get(int bit)
Gets a bit. |
int |
hashCode()
Returns a hash code value for this bit string whose value depends only on which bits have been set within this BitString . |
boolean |
intersectionEmpty(BitString other)
Check if the intersection of the two sets is empty |
boolean |
isZero()
Returns whether this BitString is all zeroes. |
BitString.ForwardBitStringIterator |
iterator()
Returns an iterator that iterates through the bits in forward order. |
int |
lastSet()
Returns the last index in the bit string which is set, or -1 if there is no such index. |
int |
lastSet(int where)
Returns the last index less than where in the
bit string which is set, or -1 if there is no such index. |
int |
length()
Returns the "logical size" of this BitString : the
index of the highest set bit in the BitString plus
one. |
boolean |
minus(BitString set)
Logically subtracts this bit set with the specified set of bits. |
int |
numberOfOnes()
Returns the number of ones in this BitString . |
int |
numberOfOnes(int where)
Returns the number of ones in this BitString up to a given index. |
boolean |
or_upTo(BitString set,
int bit)
Logically ORs this bit set with the specified set of bits. |
boolean |
or(BitString set)
Logically ORs this bit set with the specified set of bits. |
static byte |
popcount(int b)
Utility function to return the number of 1 bits in the given integer value. |
static byte |
popcount(long b)
Utility function to return the number of 1 bits in the given long value. |
void |
set(int bit)
Sets a bit. |
void |
setAll()
Sets all bits. |
void |
setUpTo(int bit)
Sets all bits up to and including the given bit. |
void |
shl(int amt)
Performs a left-shift operation. |
void |
shr(int amt)
Performs a right-shift operation. |
int |
size()
Returns the number of bits of space actually in use by this BitString to represent bit values. |
java.lang.String |
toString()
Converts the BitString to a String. |
boolean |
xor(BitString set)
Logically XORs this bit set with the specified set of bits. |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public BitString(int nbits)
nbits
- the size of the stringMethod Detail |
---|
public int firstSet()
public int firstSet(int where)
where
in the
bit string which is set, or -1 if there is no such index.
where
- the starting point for the search. May be negative.public static final byte popcount(int b)
b
- value to check
public static final byte popcount(long b)
b
- value to check
public static final int bsf(int b)
b
- value to check
public static final int bsr(int v)
v
- value to check
public int lastSet(int where)
where
in the
bit string which is set, or -1 if there is no such index.
where
- the starting point for the search.public int lastSet()
public void setAll()
public void setUpTo(int bit)
bit
- the bit to be set up to (zero-based)public void set(int bit)
bit
- the bit to be set (zero-based)public void clearAll()
public void clearUpTo(int bit)
bit
- the bit to be set up to (zero-based)public void clear(int bit)
bit
- the bit to be cleared (zero-based)public boolean get(int bit)
bit
- the bit to be gotten (zero-based)public boolean and(BitString set)
true
if this
was modified in
response to the operation.
set
- the bit set to be ANDed withpublic boolean or(BitString set)
true
if this
was modified in
response to the operation.
set
- the bit set to be ORed withpublic boolean or_upTo(BitString set, int bit)
true
if this
was modified in
response to the operation.
set
- the bit set to be ORed withpublic boolean xor(BitString set)
true
if this
was modified in
response to the operation.
set
- the bit set to be XORed withpublic boolean minus(BitString set)
true
if this
was modified in
response to the operation.
set
- the bit set to subtractpublic boolean intersectionEmpty(BitString other)
other
- the set to check intersection withpublic boolean contains(BitString other)
other
- the set to check containment withpublic void shl(int amt)
amt
- number of bits to shift, can be negativepublic void shr(int amt)
amt
- number of bits to shiftpublic void copyBits(BitString set)
set
- the bit set to copy the bits frompublic int hashCode()
BitString
.
hashCode
in class java.lang.Object
public int length()
BitString
: the
index of the highest set bit in the BitString
plus
one. Returns zero if the BitString
contains no
set bits.
public int size()
BitString
to represent bit values.
The maximum element in the set is the size - 1st element.
The minimum element in the set is the zero'th element.
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
obj
- the object to compare with
public boolean isZero()
BitString
is all zeroes.
public int numberOfOnes()
BitString
.
public int numberOfOnes(int where)
BitString
up to a given index.
public java.lang.Object clone()
clone
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
public BitString.ForwardBitStringIterator iterator()
public BitString.BackwardBitStringIterator backwardsIterator()
public BitString.BackwardBitStringIterator backwardsIterator(int i)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |