public void inputDigits(String sval) {
    this.clear(); // clear all current digits
    Vector<Unsigned> vtmp = new Vector<Unsigned>();
    // parse string for spaces
    Scanner scan = new Scanner(sval);
    while(scan.hasNext()) {
      try {
        int n = scan.nextInt();
        if(n >= base_) {
          System.err.println("ERROR: Digit " + n + " too large for base " + base_);
          System.exit(1);
        }
        vtmp.add(new Unsigned(n));
      }
      catch(InputMismatchException e) {
        System.err.println("ERROR: Invalid symbol while parsing digits \"" + scan.next() + "\"");
        System.exit(1);
      }
    }
    scan.close();
    // store with lowest base digits first
    int cnt = vtmp.size();
    for(int i = 0; i < cnt; i++) {
      setDigit(i, vtmp.get(cnt - i - 1));
    }
    if(this.length() >= MAX_LENGTH_ / 2)
      System.err.println("WARNING: Using a " + this.length() + " digit BigInt may cause overflow when multiplied.");
  }