【问题标题】:How do I multiply 2 32-bit integers to produce a 64-bit integer?如何将 2 个 32 位整数相乘以生成 64 位整数?
【发布时间】:2012-03-16 22:04:14
【问题描述】:

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

【问题讨论】:

标签: c int 32bit-64bit


【解决方案1】:
#include <stdint.h>

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      只需将两个整数之一转换为uint64_t:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-17
        • 1970-01-01
        • 2013-07-25
        • 2012-11-07
        相关资源
        最近更新 更多