Module io.scif
Package io.scif.codec

Class BitBuffer


  • public class BitBuffer
    extends Object
    A class for reading arbitrary numbers of bits from a byte array.
    Author:
    Eric Kjellman
    • Constructor Detail

      • BitBuffer

        public BitBuffer​(byte[] byteBuffer)
        Default constructor.
    • Method Detail

      • skipBits

        public void skipBits​(long bits)
        Skips a number of bits in the BitBuffer.
        Parameters:
        bits - Number of bits to skip
      • getBits

        public int getBits​(int bitsToRead)
        Returns an int value representing the value of the bits read from the byte array, from the current position. Bits are extracted from the "left side" or high side of the byte.

        The current position is modified by this call.

        Bits are pushed into the int from the right, endianness is not considered by the method on its own. So, if 5 bits were read from the buffer "10101", the int would be the integer representation of 000...0010101 on the target machine.

        In general, this also means the result will be positive unless a full 32 bits are read.

        Requesting more than 32 bits is allowed, but only up to 32 bits worth of data will be returned (the last 32 bits read).

        Parameters:
        bitsToRead - the number of bits to read from the bit buffer
        Returns:
        the value of the bits read