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用法

  在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。
  那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编译器对64位整数的扩展有所不同。基于ACM的需要,下面仅介绍VC6.0与g++编译器的扩展。
  VC的64位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2^63)与[0,2^64),即-9223372036854775808~9223372036854775807与0~18446744073709551615(约1800亿亿)。对64位整数的运算与32位整数基本相同,都支持四则运算与位运算等。当进行64位与32位的混合运算时,32位整数会被隐式转换成64位整数。但是,VC的输入输出与__int64的兼容就不是很好了,如果你写下这样一段代码:

那么,在第2行会收到“error C2679: binary '>>' : no operator defined which takes a right-hand operand of type '__int64' (or there is no acceptable conversion)”的错误;在第3行会收到“error C2593: 'operator <<' is ambiguous”的错误。那是不是就不能进行输入输出呢?当然不是,你可以使用C的写法:

scanf("%I64d",&a);
printf("%I64d",a);

就可以正确输入输出了。当使用unsigned __int64时,把"I64d"改为"I64u"就可以了。
  OJ通常使用g++编译器。其64位扩展方式与VC有所不同,它们分别叫做long long 与 unsigned long long。处理规模与除输入输出外的使用方法同上。对于输入输出,它的扩展比VC好。既可以使用

cin>>a;
3 cout<<a;

也可以使用

scanf("%lld",&a);
printf("%lld",a);

  最后我补充一点:作为一个特例,如果你使用的是Dev-C++的g++编译器,它使用的是"%I64d"而非"%lld"。

总结:

输入输出long long 也可以借助printf,scanf语句,

但对应的占位符却是和平台相关与编译器相关的:

在Linux中,gcc很统一的用%lld;在windows中,MinGW的gcc和VC6都需要用%I64d;

但VS2008却是用%lld。

C++中的long long和__int64类型相关推荐

  1. C++中的long long和__int64类型(转载)

    C语言中long long的用法 http://www.awuit.com/c-language-the-usage-of-long-long/ 阿吴 | C/C++ | 十一月, 03 2009 | ...

  2. R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现

    R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现 目录

  3. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解、使用gtExtras包添加一个图,显示表中某一列中的数字、并为类型数据添加图像符号标签

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解.使用gtExtras包添加一个图,显示表中某一列中的数字.并为类型数据添加图像符号标签 目 ...

  4. 【Groovy】Groovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )

    文章目录 前言 一.Groovy 动态语言 二.Groovy 中的变量自动类型推断及动态调用 三.Java 中必须为变量指定其类型 前言 Groovy 是动态语言 , Java 是静态语言 ; 一.G ...

  5. python中 是什么类型_浅谈python中的变量默认是什么类型

    浅谈python中的变量默认是什么类型 1.type(变量名),输出的结果就是变量的类型: 例如 >>> type(6) 2.在Python里面变量在声明时,不需要指定变量的类型,变 ...

  6. c语言 sizeof size_t,C/C++中的sizeof运算符和size_t类型的详解

    sizeof的作用 sizeof是c的运算符之一,用于获取操作数被分配的内存空间,以字节单位表示. 这里指的操作数,可以是变量,也可以是数据类型,如int,float等.所以就可以通过它来获取本地c库 ...

  7. 测试设计中需要考虑的22种测试类型

    测试设计中需要考虑的22种测试类型 测试设计中需要考虑的22种测试类型 纪玉春 来自21CMM 黑盒测试:不基于内部设计和代码的任何知识,而是基于需求和功能性. 白盒测试:基于一个应用代码的内部逻辑知 ...

  8. 在电路设计中,这7个接口类型太重要了,我难道不该学学么!

    我们知道,在电路系统的各个子模块进行数据交换时可能会存在一些问题导致信号无法正常.高质量地"流通". 例如有时电路子模块各自的工作时序有偏差(如CPU与外设)或者各自的信号类型不一 ...

  9. mysql 字符串转long_把数据库中的字符串格式转为long类型

    背景: 在做接口时,需要把数据库中所有ID取出来,用jmter做一些数据关联,问题来了,数据库中的ID转换出来为字符型,而接口是需要使用LONG型,所以在导出来后,数据一直报类型不为long,那如何把 ...

最新文章

  1. SVN中如何创建共享文件夹
  2. 论文格式——合适【CSDN】发文
  3. eclipse中快捷键
  4. 开机自启动win7计划任务
  5. 【HDU - 1465 】不容易系列之一 (组合数学,错排)
  6. iOS中有两种支持机制:Notification和KVO(Key-Value Observing)
  7. H5 自定义数据属性
  8. 编程军规 —— Java 篇
  9. 云中漫步-我这一辈子
  10. 关于打卡值班制度---一个excel开发工具小函数
  11. Horizon client PcoIP连接桌面后黑屏断开,报:与远程计算机的连接终止
  12. 消防应急疏散指示系统在学校项目上的应用
  13. Java——时间复杂度、空间复杂度详解
  14. 以太坊加速区块同步方法
  15. 主成分分析法PCA(一):算法原理
  16. oracle数据库拼接sql语句字符串问题
  17. 在Carla中加入可以使用的自己的车
  18. 超实用!年薪40W的项目经理都在用的6个项目管理软件
  19. 他华丽转身,却永远留下了六个字——在中国,为中国
  20. 3D建模师的角色表:15个顶级提示【案列演示】

热门文章

  1. 最小安装CentOS 7.6 Linux系统(无UI界面纯命令行,虚拟机教学)
  2. 吃得苦中苦 方为人上人
  3. vue中验证码输入框
  4. 怎么把html换成gif,怎么将mp4转换成gif 把mp4转换成高清gif的方法
  5. redis 键值占用内存分析 RDR(Redis Data Reveal)
  6. Linux内存管理 之 KSM代码实现
  7. 一文了解BLDC与PMSM的区别
  8. 《如何设计一个秒杀系统》——专栏笔记
  9. Css实现刘海,纯CSS样式写刘海屏效果
  10. CPU、操作系统的32位与64位