关于int64型的说明

来源:互联网 发布:mac air与mac pro区别 编辑:程序博客网 时间:2024/05/20 15:39
Int64是有符号 64 位整数数据类型,相当于C++中的longlong、 C# 中的 long 和 SQL Server 中的 bigint,表示值介于 -2^63 (-9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,807)之间的整数。存储空间占 8字节。用于整数值可能超过 int 数据类型支持范围的情况。
Int64为比较此类型的实例、将实例的值转换为它的字符串表示形式以及将数字的字符串表示形式转换为此类型的实例提供了相应的方法。
警告 在 32 位 Intel 计算机上分配 64 位值不是原子操作;即该操作不是线程安全的。这意味着,如果两个人同时将一个值分配给一个静态Int64 字段,则该字段的最终值是无法预测的。
有关格式规范代码如何控制值类型的字符串表示形式的信息,请参见格式化概述。此类型实现接口 IComparable、IFormattable和 IConvertible。使用 Convert 类进行转换,而不是使用此类型的 IConvertible显式接口成员实现。
具体用法可以如下所示:
#include
int main()
{
_int64 j;

  

scanf("%I64d",&j);
printf("%I64d",j);
}
说明:
1、int64不能用作为循环变量
2、int64的操作速度较慢

OJ通常使用g++编译器。其64位扩展方式与VC有所不同,它们分别叫做longlong 与 unsigned longlong。处理规模与除输入输出外的使用方法同上。对于输入输出,它的扩展比VC好。既可以使用
1 long long a;
2cin>>a;
3 cout<<a;
也可以使用
scanf("%lld",&a);
printf("%lld",a);
使用无符号数时,将"%lld"改成"%llu"即可。
最后补充一点:作为一个特例,如果你使用的是Dev-C++的g++编译器,它使用的是"%I64d"而非"%lld"


原创粉丝点击