Умножение двух 32-битных чисел без использования 64-битного целого

Мы делаем 32-битное * 32-битное умножение, используя следующий алгоритм

Давайте мы хотим умножить (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) ~~~

Мой вопрос,

Есть ли лучший способ сделать это?

Ответы на вопрос(4)

Ваш ответ на вопрос