Method: HexaPDF::Utils::BitStreamReader#read
- Defined in:
- lib/hexapdf/utils/bit_stream.rb
#read(bits) ⇒ Object
Reads bits number of bits.
Returns nil if not enough bits are available for reading.
79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/hexapdf/utils/bit_stream.rb', line 79 def read(bits) while @available_bits < bits @bit_cache = (@bit_cache << 8) | (@data.getbyte(@pos) || return) @pos += 1 @available_bits += 8 end @available_bits -= bits result = (@bit_cache >> @available_bits) @bit_cache &= (1 << @available_bits) - 1 result end |