Inverting [or rather: negating] a number: what's quickest?

for simplicity and readability I'd go for
a = -a;
as a signed integer.

For speed, I wonder if the bitwise xor instruction is faster (but much less comprehensible)
eg
int nx = 0xFFFF;
int a = 12;
..
a = a ^ nx; //invert all bits to form 1's complement
a++; //add 1 to form 2's complement

???