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

      • 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]
      • available

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