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

    • Constructor Summary

      Constructors 
      Constructor Description
      BitSource​(byte[] bytes)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()  
      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

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

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