C语言能算一个十四位的数字吗?求高手解答。

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:11:25
main()
{
long long i;
i=14000000000000;
if(i%7==0)
printf("aaaa");
}
不能打印aaaa啊?
要是i是10位数就可以。
是我机器问题还是?

用long long就行了。
算了,还是详细说一下。

1999年颂布的ISO C标准中,以long long表示比long更大的整数,它要求至少有64位,也就是2^64。不过目前Windows下的编译器都不能完全支持C99标准。
在C99标准公布以前,有许多编译器也实现了64位整数,如1998年的VC 6.0使用微软自己的关键字__int64。
而早期的TC系列(2.0是80年代末,3.0是1992年)则完全不支持64位整数。
Windows下GCC 3.4左右的版本(也就是目前常用的Dev-C++之类IDE用的的编译器)支持long long型,但scanf()和printf()的转义字符用的是%I64d,而不是标准中的%ll。如果用linux编程就没有这个问题。
Borland C++ Builder没怎么用过,不清楚。

更多的内容在网上搜一搜就知道了。

下面附一个可以通过mingw GCC 3.4.2的程序。

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

int main()
{
long long big = 1234567890123456LL;
printf("big = %I64d\nbig * 2 = %I64d\n", big, big * 2);
system("pause");
return 0;
}

自己写结构体和函数实现
处理超大的数只能这样
要不找找函数库里有没有

这是你对数据的定义的问题~~

你把数据定义成 long int , long double, 就可以了~~

别乱教人啊楼上的~~哪来的long long 啊~~~!

强烈谴责楼上。
long int范围:-2147483648~2147483647
long long 为64位整形。