title: Java methods in custom BitString class
body: <p>For an assignment we are suppose to modify a custom BitString class. There are over 10 functions we need to actually write the code for and I am stuck on the very first one. This is the beginning parts to the class along with some of the methods contained that I am trying to use:</p>
  
  <pre><code>public class BitString implements Cloneable {
      // An array to hold the bits that make up the bit string.
      private boolean bits[];
      /**
       * A constant that defines the size of the default bit string.
       */
      public static final int DEFAULT_SIZE = 8;
  
      /**
       * Creates a new, all false, bit string of the given size.
       */
      public BitString(int size) {
          if (size &lt; 1) throw new IllegalArgumentException("Size must be positive");
          bits = new boolean[size];
      }
  
      /**
       * Creates a new all false bit string of size DEFAULT_SIZE.
       */
       public BitString() {
           this(DEFAULT_SIZE);
       }
  
       /**
        * Set the value of a bit string at the given index to true.
        */
       public void set(int index) {
           bits[index] = true;
       }
  
       /**
        * Set the value of a bit string at the given index to false.
        */
       public void clear(int index) {
           bits[index] = false;
       }
  </code></pre>
  
  <p>Below is the method I am working on (The only part that was given is the method and the input types) I can not call <code>bits.set()</code> or <code>bits.clear()</code> or the same operations that they are doing. When compiling I get </p>
  
  <blockquote>
    <p>Error: Cannot make a static reference to the non-static field bits</p>
  </blockquote>
  
  <p>on both method calls.</p>
  
  <pre><code>public static BitString decimalToUnsigned(int n, int size) {
      //throw new UnsupportedOperationException("This function needs to be completed!");
      int result = 0;
      int multiplier = 1;
      int base = 2;
  
      while(n &gt; 0) {
          int remainder = n % base;
          n = n / base;
          if (remainder == 0) {
              //value = false;
              try {
                  //bits.clear(size);
                  bits[size] = false;
              } catch (InsufficientNumberOfBitsException ie) {}
          } else {
              //value = true;
              try {
                  //bits.set(size);
                  bits[size] = true;
              } catch (InsufficientNumberOfBitsException ie) {}
          }
          result = result + remainder * multiplier;
          multiplier = multiplier * 10;
          size--;
      }
  
      System.out.println("Result..." + result);
  
      return(bits);
  } 
  </code></pre>
  
  <p>Thanks for any help.</p>