Как да взема вход от 2 32-битови цели числа без знак, да ги умножа и да получа изхода като 64-битово цяло число в C? Всяка помощ се оценява! Благодаря.
Как да умножа 2 32-битови цели числа, за да произведа 64-битово цяло число?
comment
en.wikipedia.org/wiki/Multiplication_algorithm
- person pmg   schedule 27.02.2012
comment
@Suma Не, това не е дубликат на тази публикация... прочетете публикацията, която сте свързали.
- person Lundin   schedule 27.02.2012
comment
Наистина не са еднакви. Премахнах автоматичния коментар, за да предотвратя по-нататъшно объркване.
- person BoltClock   schedule 27.02.2012
Отговори (2)
Първо преобразувайте двете цели числа в 64 бита, след това направете нормално умножение и върнете стойността.
person
Dervall
schedule
27.02.2012
Просто преобразувайте едно от двете цели числа в uint64_t
:
uint32_t a, b;
uint64_t c;
/* assign to a and b */
c = (uint64_t) a * b;
person
ouah
schedule
27.02.2012