Мы делаем 32-битное * 32-битное умножение, используя следующий алгоритм.
Допустим, мы хотим умножить a (32 бита) на b (32 бита), оба со знаком,
a = ah * 2^16 + al [ah — старшие 16 бит, al — младшие 16 бит]
b = bh * 2^16 + bl [bh — старшие 16 бит, bl — младшие 16 бит]
Мы эффективно делаем
Результат = (al * bl) + (((ah * bl) + (al * bh)) * 2^16) + ((ah * bh) * 2 ^ 32) ~~~
Мой вопрос,
Есть ли лучший способ сделать это?