在C中打印long int值

时间:2013-07-22 03:39:20

标签: c

我有两个long int类型的变量,如下所示:

long int a=-2147483648, b=-2147483648;
a=a+b;

printf("%d",a);

我变零了。我尝试将类型更改为long long int,但我仍然没有得到正确答案。

3 个答案:

答案 0 :(得分:42)

您必须使用%ld打印long int,并%lld打印long long int

请注意,只保证long long int足以存储计算结果(或者实际上是您正在使用的输入值)。

您还需要确保在C99兼容模式下使用编译器(例如,使用gcc的-std=gnu99选项)。这是因为直到C99才引入long long int类型;虽然许多编译器在C90模式下实现long long int作为扩展,但常量2147483648在C90中可能具有unsigned intunsigned long类型。如果在您的实现中出现这种情况,则-2147483648的值也将具有无符号类型,因此将为正数,并且整体结果将不是您所期望的。

答案 1 :(得分:3)

使用printf("%ld",a);

查看format specifiers的printf

答案 2 :(得分:1)

输入“ long int ”并在C中输出“ long int ”:

long int n;
scanf("%ld", &n);
printf("%ld", n);

在C中输入“ long long int ”并输出“ long long int ”是:

long long int n;
scanf("%lld", &n);
printf("%lld", n);

希望你已经清除..