文档介绍:IT-Homer 专栏
成功是优点的发挥,失败是缺点的积累! 不为失败找理由,只为成功找
方法……
C++中的long long和__int64类型(转载)
分类: C/C++/C# 2010-09-29 10:42 1324人阅读评论(3) 收藏举报
C语言中long long的用法
-language-the-usage-of-long-long/
阿吴| C/C++ | 十一月, 03 2009 | ments
在分析BT代码的过程中,遇到了这样的定义:long long line_position;很是纳闷,在C语言中我还没有见过这样的
写法,网上搜了,资料也很少,最后在C语言标准与实现这本书中找到了关于long long的说法。在C语言的C99标准
扩展了新的整数类型 long long,long是32位宽,占4个字节,long long通常被定义成 64 位宽,也就可以实现了
在32位机器上可以扩展8字节的数据,GUN C也支持,当然在64位平台上就存在这个问题了。C99标准并没有硬性规定
具体到某种平台上的某种整数类型究竟占用多少字节、能够表示多大范围的数值等,只是给出一条原则和一个参考
数值集合,只要同时满足这两方面条件就算是符合 C 标准。
之后,我查看了C99标准:
—The rank of long long int shall be greater than the rank of long int,which
shall be greater than the rank of int,which shall be greater than the rank of short
int,which shall be greater than the rank of signed char.
意思是说:
long long 的级别高于 long ,long 的级别高于 int ,int 的级别高于 short ,short 的级别高于 char 。(另
外有_Bool 永远是最低级别)。级别高的整数类型的宽度大于等于级别较低的整数类型。
编译long long需要支持C99标准的编译器才行,VC并不支持,但有对应的类型__int64
 
C++ __int64用法
./331871/71253
转自:
[url]kerel/archive/2006/08/16/
[/url]
C++的64位整数[原]by 赤兔
在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和
int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即
0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。
那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编译器对64位整数的扩展有所
不同。基于ACM的需要,++编译器的扩展。
1
不同。基于ACM的需要,++编译器的扩展。
VC的64位整数分别叫做__int