def each_bit
      return enum_for(:each_bit) unless block_given?
      index = 0
      bitsize = self.bitsize
      @data.each_byte do |byte|
        loop do
          break if index == bitsize
          bit = (byte >> (7 - (index & 7))) & 1
          yield bit
          index += 1
          break if (index & 7) == 0
        end
      end
      return self
    end
def each_bit
      return enum_for(:each_bit) unless block_given?
      index = 0
      bitsize = self.bitsize
      @data.each_byte do |byte|
        loop do
          break if index == bitsize
          bit = (byte >> (7 - (index & 7))) & 1
          yield bit
          index += 1
          break if (index & 7) == 0
        end
      end
      return self
    end
Call the given block once for each bit in the `Binary`, passing each
 bit from first to last successively to the block. If no block is given,
 returns an `Enumerator`.

 @return [self]
 @yield [Integer]