com.google.zxing.common
Class BitSource

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

public final class BitSource
extends Object

This provides an easy abstraction to read bits at a time from a sequence of bytes, where the number of bits read is not often a multiple of 8.

This class is thread-safe but not reentrant -- unless the caller modifies the bytes array it passed in, in which case all bets are off.

Author:
Sean Owen

Constructor Summary
BitSource(byte[] bytes)
           
 
Method Summary
 int available()
           
 int getBitOffset()
           
 int getByteOffset()
           
 int readBits(int numBits)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BitSource

public BitSource(byte[] bytes)
Parameters:
bytes - bytes from which this will read bits. Bits will be read from the first byte first. Bits are read within a byte from most-significant to least-significant bit.
Method Detail

getBitOffset

public int getBitOffset()
Returns:
index of next bit in current byte which would be read by the next call to readBits(int).

getByteOffset

public int getByteOffset()
Returns:
index of next byte in input byte array which would be read by the next call to readBits(int).

readBits

public int readBits(int numBits)
Parameters:
numBits - number of bits to read
Returns:
int representing the bits read. The bits will appear as the least-significant bits of the int
Throws:
IllegalArgumentException - if numBits isn't in [1,32] or more than is available

available

public int available()
Returns:
number of bits that can be read successfully


Copyright © 2007-2012. All Rights Reserved.