signed and unsigned subtraction implementation