def read_bits(*args)
      {}.tap do |m|
        args.each { |bit| m[bit] = @value[bit] }
      end
    end
def read_bits(*args)
      {}.tap do |m|
        args.each { |bit| m[bit] = @value[bit] }
      end
    end
Initialize the BitField with an optional value. Default is 0

 @param [Integer] value the integer that contains the bit fields
 Read the specified bit indices into a hash with bit index as key

 @param [Integer] bits one or more bit indices to read.

 @example Read a list of bits into a hash
   bit_field = BitField.new(5)
   bit_field.read_bits(0, 1, 2)
   #=> {0=>1, 1=>0, 2=>1}
   # because 5 is 101 in binary

 @return [Hash] a hash with the bit index as key and bit (1 or 0) as value