Is it true that adding two numbers in base 2 is more complex than multiplying them? If so can someone please explain why this is the case?
2 Answers
Floating point numbers are stored as $x \cdot 2^e$, where typically $1 \leq x < 2$ (unless your number is denormalized). When multiplying $x \cdot 2^e$ and $y \cdot 2^f$, we simply compute $xy \cdot 2^{e+f}$ (we have to truncate $xy$). When adding $x \cdot 2^e$ and $y \cdot 2^f$, we first have to shift one of the numbers (the one with smaller exponent) so that we have a "common denominator". For example, to add $1 \cdot 2^0$ and $1 \cdot 2^{-3}$, you have to rewrite the latter as $0.125 \cdot 2^0$.
Whether this makes addition more complex than multiplication is a matter of opinion. Multiplying $x$ and $y$ is still harder than addition.
The straightforward algorithm for addition is more complicated than the straightforward algorithm for multiplication. For addition, you need to compare the exponents, shift the mantissa of the operand with smaller exponent, add or subtract (the signs might be different) and then check for overflow or check for an unnormalised result. Lots of complicated steps.
For multiplication, you multiply the mantissas, normalise the product of mantissas, check for overflow and under flow. Much simpler.
However, the number of operations for the multiplication is much higher, quadratic for typical fast hardware implementations. It’s just easier to describe.