public void update(char[] str, int offset, int length) {
    if (length == 0) {
      this.zeroClear();
      return;
    }
    this.negative = false;
    if (str[offset] == '-') {
      this.negative = true;
      ++offset;
      --length;
    } else if (str[offset] == '+') {
      ++offset;
      --length;
    }
    this.mag.update(str, offset, length);
    if (this.mag.isZero()) {
      this.negative = false;
    }
  }
Updates the value of this object from the given string with given offset
and length.

@param str
         string
@param offset
         offset
@param length
         length
common/src/java/org/apache/hadoop/hive/common/type/SignedInt128.java