Class BitSource
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.
<p>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.</p>
public sealed class BitSource
- Inheritance
-
BitSource
- Inherited Members
Constructors
BitSource(byte[])
public BitSource(byte[] bytes)
Parameters
bytes
byte[]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.
Properties
BitOffset
index of next bit in current byte which would be read by the next call to {@link #readBits(int)}.
public int BitOffset { get; }
Property Value
ByteOffset
index of next byte in input byte array which would be read by the next call to {@link #readBits(int)}.
public int ByteOffset { get; }
Property Value
Methods
available()
public int available()
Returns
- int
number of bits that can be read successfully
readBits(int)
public int readBits(int numBits)
Parameters
numBits
intnumber of bits to read
Returns
- int
int representing the bits read. The bits will appear as the least-significant bits of the int
Exceptions
- ArgumentException
if numBits isn't in [1,32] or more than is available