com.google.zxing.common
Class BitArray

java.lang.Object
  extended by com.google.zxing.common.BitArray

public final class BitArray
extends Object

A simple, fast array of bits, represented compactly by an array of ints internally.

Author:
Sean Owen

Constructor Summary
BitArray()
           
BitArray(int size)
           
 
Method Summary
 void appendBit(boolean bit)
           
 void appendBitArray(BitArray other)
           
 void appendBits(int value, int numBits)
          Appends the least-significant bits, from value, in order from most-significant to least-significant.
 void clear()
          Clears all bits (sets to false).
 void flip(int i)
          Flips bit i.
 boolean get(int i)
           
 int[] getBitArray()
           
 int getNextSet(int from)
           
 int getNextUnset(int from)
           
 int getSize()
           
 int getSizeInBytes()
           
 boolean isRange(int start, int end, boolean value)
          Efficient method to check if a range of bits is set, or not set.
 void reverse()
          Reverses all bits in the array.
 void set(int i)
          Sets bit i.
 void setBulk(int i, int newBits)
          Sets a block of 32 bits, starting at bit i.
 void setRange(int start, int end)
          Sets a range of bits.
 void toBytes(int bitOffset, byte[] array, int offset, int numBytes)
           
 String toString()
           
 void xor(BitArray other)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BitArray

public BitArray()

BitArray

public BitArray(int size)
Method Detail

getSize

public int getSize()

getSizeInBytes

public int getSizeInBytes()

get

public boolean get(int i)
Parameters:
i - bit to get
Returns:
true iff bit i is set

set

public void set(int i)
Sets bit i.

Parameters:
i - bit to set

flip

public void flip(int i)
Flips bit i.

Parameters:
i - bit to set

getNextSet

public int getNextSet(int from)
Parameters:
from - first bit to check
Returns:
index of first bit that is set, starting from the given index, or size if none are set at or beyond this given index
See Also:
getNextUnset(int)

getNextUnset

public int getNextUnset(int from)
See Also:
getNextSet(int)

setBulk

public void setBulk(int i,
                    int newBits)
Sets a block of 32 bits, starting at bit i.

Parameters:
i - first bit to set
newBits - the new value of the next 32 bits. Note again that the least-significant bit corresponds to bit i, the next-least-significant to i+1, and so on.

setRange

public void setRange(int start,
                     int end)
Sets a range of bits.

Parameters:
start - start of range, inclusive.
end - end of range, exclusive

clear

public void clear()
Clears all bits (sets to false).


isRange

public boolean isRange(int start,
                       int end,
                       boolean value)
Efficient method to check if a range of bits is set, or not set.

Parameters:
start - start of range, inclusive.
end - end of range, exclusive
value - if true, checks that bits in range are set, otherwise checks that they are not set
Returns:
true iff all bits are set or not set in range, according to value argument
Throws:
IllegalArgumentException - if end is less than or equal to start

appendBit

public void appendBit(boolean bit)

appendBits

public void appendBits(int value,
                       int numBits)
Appends the least-significant bits, from value, in order from most-significant to least-significant. For example, appending 6 bits from 0x000001E will append the bits 0, 1, 1, 1, 1, 0 in that order.


appendBitArray

public void appendBitArray(BitArray other)

xor

public void xor(BitArray other)

toBytes

public void toBytes(int bitOffset,
                    byte[] array,
                    int offset,
                    int numBytes)
Parameters:
bitOffset - first bit to start writing
array - array to write into. Bytes are written most-significant byte first. This is the opposite of the internal representation, which is exposed by getBitArray()
offset - position in array to start writing
numBytes - how many bytes to write

getBitArray

public int[] getBitArray()
Returns:
underlying array of ints. The first element holds the first 32 bits, and the least significant bit is bit 0.

reverse

public void reverse()
Reverses all bits in the array.


toString

public String toString()
Overrides:
toString in class Object


Copyright © 2007-2012. All Rights Reserved.