INTFORMAT currently treats the argument as a signed INTEGER.
One should be able to INTFORMAT an UNSIGNED as well.
Currently, if the UNSIGNED value exceeds the range of an 8-byte signed INTEGER, the result returned from INTFORMAT is negative.
UNSIGNED8 uNUM2 := 18446744073709551615;
iNum2 := INTFORMAT(uNum2,20,1);