For simplicity, let's take unsigned binary numbers. With n binary digits, you can represent 2^n different numbers, ranging from zero upto 2^n-1. When multiplying an n-digit binary number with an m-digit binary number, the result will be a number between zero and (2^n-1) * (2^m-1) = 2^(n+m) - 2^n - 2^m + 1, which typically is only marginally less than 2^(n+m)-1. To represent such a range of results, you need n+m binary digits.