Fixing warning C4146: unary minus operator applied to unsigned type, result still unsigned

Making compiler happy
This needs testing to ensure we are returning the proper result.  What input data will achieve this?  cc @theuni