2012-02-27 102 views
3

如何接受2个32位无符号整数的输入,将它们相乘并得到输出为C中的64位整数?任何帮助表示赞赏!谢谢。如何乘以2个32位整数产生一个64位整数?

+0

http://en.wikipedia.org/wiki/Multiplication_algorithm – pmg 2012-02-27 12:33:49

+1

@Suma不,它不是后的副本。 ..阅读您链接的帖子。 – Lundin 2012-02-27 12:35:47

+0

确实,它们不一样。我删除了自动评论以防止更进一步的混淆。 – BoltClock 2012-02-27 15:35:50

回答

12
#include <stdint.h> 

uint64_t mul64(uint32_t x, uint32_t y) { 
    return (uint64_t)x*(uint64_t)y; 
} 
6

首先将两个整数转换为64位,然后进行正常乘法并返回值。

1

只是转换了两个整数之一uint64_t

uint32_t a, b; 
uint64_t c; 
/* assign to a and b */ 

c = (uint64_t) a * b; 
相关问题