code: def read_bit(self):
          
          # Perform a faster check on underflow
          if self._pos >= self._end_pos:
              raise self.BufferUnderflow()
          result = ord(self._input[self._pos]) & 1
          self._pos += 1
          return result
docs: Read a single boolean value, returns 0 or 1. Convience for single
          bit fields.
  
          Will raise BufferUnderflow if there's not enough bytes in the buffer.