使用c语言表示长号

时间:2012-08-31 15:29:32

标签: c

我试图用C代表一个很长的数字(即13到16位数字)。 long long似乎不起作用,因为我总是遇到溢出问题。

如果有人可以帮我解决这个问题,我将不胜感激,谢谢。

long long number = 123654123654123LL;
printf("%ull", number);

1 个答案:

答案 0 :(得分:6)

格式说明符不正确,应为%llunumber的类型应为unsigned long long

#include<stdio.h>

int main()
{
    unsigned long long number = 123654123654123LL;
    printf("%llu\n", number);

    return 0;
}

输出:

  

123654123654123

请参阅http://ideone.com/i7pLX

格式说明符%ull实际上是%u,后跟两个l(ell)字符。

5.2.4.2.1 C99标准的整数类型大小&lt; limits.h&gt; 部分开始,long longunsigned long long的最大值保证为至少是:

LLONG_MAX +9223372036854775807 // 263 − 1
ULLONG_MAX 18446744073709551615 // 264 − 1

所以123654123654123在范围内很舒服。