Thanks Kpj.
It is easy to add a sign, for example by creating a SInt128 (signed int 128) record that contains the UInt128 value and a "negative" boolean. Then, it is rather easy to do operators for this new structure.
There is already two's complement. For example if you write a - b, b is transformed this way. But well, there is no operator for just -b. It can be easily added by doing the same as in a-b, which is apply "not" and then inc.