public Decimal128 update(IntBuffer buf, int precision) {
    int scaleAndSignum = buf.get();
    this.scale = (short) (scaleAndSignum >> 16);
    this.signum = (byte) (scaleAndSignum & 0xFF);
    this.unscaledValue.update(buf, precision);
    assert ((signum == 0) == unscaledValue.isZero());
    return this;
  }
Updates the value of this object by reading from ByteBuffer, using the
required number of ints for the given precision.

@param buf
         ByteBuffer to read values from
@param precision
         0 to 38. Decimal digits.
common/src/java/org/apache/hadoop/hive/common/type/Decimal128.java