gpt4 book ai didi

c - 关于使用数据类型 int64_t 在 C 中进行十六进制乘法的问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:45:52 25 4
gpt4 key购买 nike

当我尝试使用数据类型 int64_t 执行 16 位乘以 16 位的十六进制乘法时,显示的结果仅限于 32 位,并且永远不会显示第 33 位(如果存在),尽管我正在定义操作数以及结果长度为 64 位。

这是我使用的简单代码:

#include<stdio.h>  
#include <stdint.h>

int main()
{
int64_t a, b, r;
a = 0xabcd;
b = 0xdbca;
r = a * b * 3;
printf("%x", r);
return 0;
}

打印出来的结果是:ba7fcc46

预期结果是:1ba7fcc46

请帮帮我。

最佳答案

int64_t 的格式说明符取决于平台(%I64x 在 Windows 上,%llx 在任何其他平台上,YMMV)。因此,您可以使用一个看起来很丑但可以在任何系统上运行的宏:

#include <inttypes.h>
...
printf("%" PRIx64 "\n", r);

如果您不介意您的代码不能在 Windows 上运行,您可以只使用 %llx


(已编辑;宏名称错误)

关于c - 关于使用数据类型 int64_t 在 C 中进行十六进制乘法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5317041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com