【发布时间】:2012-03-16 22:04:14
【问题描述】:
如何输入 2 个 32 位无符号整数,将它们相乘并在 C 语言中将输出作为 64 位整数?任何帮助表示赞赏!谢谢。
【问题讨论】:
-
@Suma 不,它不是该帖子的副本...阅读您链接的帖子。
-
确实,它们不一样。我已删除自动评论以防止进一步混淆。
标签: c int 32bit-64bit
如何输入 2 个 32 位无符号整数,将它们相乘并在 C 语言中将输出作为 64 位整数?任何帮助表示赞赏!谢谢。
【问题讨论】:
标签: c int 32bit-64bit
#include <stdint.h>
uint64_t mul64(uint32_t x, uint32_t y) {
return (uint64_t)x*(uint64_t)y;
}
【讨论】:
先将两个整数转换为 64 位,然后进行正常的乘法运算并返回值。
【讨论】:
只需将两个整数之一转换为uint64_t:
uint32_t a, b;
uint64_t c;
/* assign to a and b */
c = (uint64_t) a * b;
【讨论】: