Does using "16's complement" for hex always yield the same result as two's comp for binary?
What you're doing is still safe, since you're still performing twos-complement operations on a signed integer, just with hex representations of the integer shown as you perform operations. 

(0xFFFF - 0xA451) is the same thing as (0b1111_1111_1111_1111 - 0b1010_0100_0101_0001) which is just flipping the bits. Next, adding 0x1 modulo 0x10000 is the same as adding binary 1 modulo 0b1_0000_0000_0000_0000, since addition is an inherent property of the numbers rather than their representations in a particular base.