net.cscott.jutil
public final class BitString extends Object implements Cloneable, Serializable
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, I think.
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.
Version: $Id: BitString.java,v 1.1 2003/03/20 01:58:20 cananian Exp $
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.
|
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. |
BitString | clone()
Clones the BitString. |
void | copyBits(BitString set)
Copies the values of the bits in the specified set into this set. |
boolean | equals(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() |
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 | lastSet() Returns the last index 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. |
static void | main(String[] argv) Self-test function. |
int | numberOfOnes() |
int | numberOfOnes(int where) |
boolean | or(BitString set)
Logically ORs this bit set with the specified set of bits.
|
boolean | or_upTo(BitString set, int bit)
Logically ORs this bit set with the specified set of bits.
|
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. |
int | size()
Returns the number of bits of space actually in use by this
BitString to represent bit values.
|
String | toString()
Converts the BitString to a String. |
boolean | xor(BitString set)
Logically XORs this bit set with the specified set of bits.
|
Parameters: nbits the size of the string
true
if this
was modified in
response to the operation.Parameters: set the bit set to be ANDed with
Parameters: bit the bit to be cleared (zero-based)
Parameters: bit the bit to be set up to (zero-based)
Parameters: set the bit set to copy the bits from
Parameters: obj the object to compare with
Returns: true if the contents of the bitsets are the same; false otherwise.
where
in the
bit string which is set, or -1 if there is no such index.Parameters: where the starting point for the search. May be negative.
Parameters: bit the bit to be gotten (zero-based)
BitString
.Parameters: set the set to check intersection with
where
in the
bit string which is set, or -1 if there is no such index.Parameters: where the starting point for the search.
BitString
: the
index of the highest set bit in the BitString
plus
one. Returns zero if the BitString
contains no
set bits.true
if this
was modified in
response to the operation.Parameters: set the bit set to be ORed with
true
if this
was modified in
response to the operation.Parameters: set the bit set to be ORed with
Parameters: bit the bit to be set (zero-based)
Parameters: bit the bit to be set up to (zero-based)
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.true
if this
was modified in
response to the operation.Parameters: set the bit set to be XORed with