is equivalent to
a% = -a% - 1
a% = NOT a%
Because the first piece of code has more operations in it, the second piece of code must be faster, and this is borne out in tests: the second is 1.44 times faster than the first.
NOT performs the 1's complement on the number, which means that it inverts all the bits of a number such as 00101110 to 11010001.
The signed binary system does not use a single negative sign to signify negativity, because then there would be +0 and -0. The Great Wise Ones decided that they wouldn't have that, and made the signed integer range between -n/2^2 - 1 to n/2^2 + 1. (8 bit values would go from -128 to 127)
Therefore, then, NOT is the same as a% = -a% - 1 because the number first has to be shifted by 1 up and then set to negative.