def read_bit_as_binary(bitlen)
      unless bit_pointer % 8 == 0
        raise BinaryException.new("Bit pointer must be pointing start of byte. " +
                                  "But now pointing #{bit_pointer}.")
      end
      unless bitlen % 8 == 0
        raise BinaryException.new("Arg must be integer of multiple of 8. " +
                                  "But you specified #{bitlen}.")
      end
      if self.length - bit_pointer/8 < bitlen/8
        raise BinaryException.new("Rest of self length(#{self.length - bit_pointer/8}byte)" +
                                  " is shorter than specified byte length(#{bitlen/8}byte).")
      end
      response = self[bit_pointer/8, bitlen/8]
      bit_pointer_inc(bitlen)
      return response
    end
def read_bit_as_binary(bitlen)
      unless bit_pointer % 8 == 0
        raise BinaryException.new("Bit pointer must be pointing start of byte. " +
                                  "But now pointing #{bit_pointer}.")
      end
      unless bitlen % 8 == 0
        raise BinaryException.new("Arg must be integer of multiple of 8. " +
                                  "But you specified #{bitlen}.")
      end
      if self.length - bit_pointer/8 < bitlen/8
        raise BinaryException.new("Rest of self length(#{self.length - bit_pointer/8}byte)" +
                                  " is shorter than specified byte length(#{bitlen/8}byte).")
      end
      response = self[bit_pointer/8, bitlen/8]
      bit_pointer_inc(bitlen)
      return response
    end
Read specified length of bits and return as Binary instance.
 Bit pointer proceed for that length.

 *Warning*: "bitlen" must be integer of multiple of 8, and bit pointer must be pointing
 start of byte.