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 and Description
    `BitSource(byte[] bytes)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 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–2018. All rights reserved.