If I have a number and want the negative of it, is it faster to multiply it by -1 or is it faster to take the bitwise complement of it and add 1 to it?
``` (-1) * x ``` or ``` (~x) + 1 ``` I suppose both are probably negligibly different for small numbers and few operations, but I'm just curious. I'm trying to understand more in depth about how Java works in particular.
Java is a high level language. This question is very low level. The answer may be that it depends on the microprocessor of your computer. Bitwise operations are usually fast. Addition, or incrementing which is a special case addition, is usually pretty fast. I've never done assembler that had multiplication, but that could be relatively slow.
When you put `-x` it will likely do the ones complement in a single instruction. We're assuming it's an integer.
Join our real-time social learning platform and learn together with your friends!