Package com.google.zxing.common
Class BitSource
- java.lang.Object
-
- com.google.zxing.common.BitSource
-
public final class BitSource extends java.lang.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.
-
-
Field Summary
Fields Modifier and Type Field Description private int
bitOffset
private int
byteOffset
private byte[]
bytes
-
Constructor Summary
Constructors Constructor Description BitSource(byte[] bytes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
available()
int
getBitOffset()
int
getByteOffset()
int
readBits(int numBits)
-
-
-
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:
java.lang.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
-
-