繁体   English   中英

如何将2个32位整数相乘以生成64位整数?

[英]How do I multiply 2 32-bit integers to produce a 64-bit integer?

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

#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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM