c - 格式化 unsigned long long 会导致整数溢出

标签 c mingw number-formatting unsigned-long-long-int

unsigned long long 类型无法正常工作。这是我的简单代码:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    unsigned long long a = 2932306814;
    printf("a = %d\n", a);
    return EXIT_SUCCESS;
}

我得到以下输出:

a = -1362660482

使用的 gcc 作为 mingw 的一部分安装,版本为 4.8.1。

最佳答案

您没有正确打印号码。 %d 说明符用于 int。对 unsigned long long 使用说明符 %llu

更改为:

printf("a = %llu\n", a);

关于c - 格式化 unsigned long long 会导致整数溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34121435/

相关文章:

windows - mingw 出问题

c++ - 使用 vector 模板时出现 mingw 链接器错误

python - 将逗号添加到整数的最简单方法是什么?

coldfusion - 在 ColdFusion 中,如果小数为 0,是否有 numberFormat() 掩码可以删除小数?

C:搜索和替换/删除

c - 如何在 GtkEntry 中选择文本

c++ - 是否可以使用 C 中的系统 api 启动终止命令?如果没有其他选择?

javascript - esc/pos命令如何计算nL nH?

c - 使用 MinGW C 的 Windows QueryPerformanceCounter

Matlab,如何调整图形上的轴值(科学记数法 - 精度不够)