BitSource (ZXing 3.5.2 API)
Description: declaration: package: com.google.zxing.common, class: BitSource

Package com.google.zxing.common

# Class BitSource

java.lang.Object
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

  Constructors
  Constructor
  Description
  `BitSource(byte[] bytes)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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 Details

  - ### 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 Details

  - ### 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