public UnsignedInt128 shiftRightConstructive(int bits, boolean roundUp) {
    UnsignedInt128 ret = new UnsignedInt128(this);
    ret.shiftRightDestructive(bits, roundUp);
    return ret;
  }
This version returns the result as a new object, not modifying the give
objects.

@param bits
         the number of bits. must be positive
@param roundUp
         whether to round up the most significant bit that was discarded
@return operation result as a new object
common/src/java/org/apache/hadoop/hive/common/type/UnsignedInt128.java