天马阁

 找回密码
 立即注册
                                        →→→→→→→→→→→→ 1点击查看所有VIP教程目录长列表(总教程数269个) 2办理VIP详情进入 ←←←←←←←←←←←←
1 x64CE与x64dbg入门基础教程 7课 已完结 2 x64汇编语言基础教程 16课 已完结 3 x64辅助入门基础教程 9课 已完结 4 C++x64内存辅助实战技术教程 149课 已完结
5 C++x64内存检测与过检测技术教程 10课 已完结 6 C+x64二叉树分析遍历与LUA自动登陆教程 19课已完结 7 C++BT功能原理与x64实战教程 29课 已完结 8 C+FPS框透视与自瞄x64实现原理及防护思路 30课完结
64驱?封? 9 64反驱? 10 64位V? 11 绝? 12 ???课?
13 64透 ? 14 64U ? 15 64Q ? 16 64功 ?
17 64U ? 18 64模 ? 19 64多 ? 20 64网 ?
21 64注 ? 22 64火 ? 23 64棋 ? 24 64自二链L?
25 64破 ? VIP会员办理QQ: 89986068   
【请先加好友,然后到好友列表双击联系客服办理,不然可能无法接受到信息。】
27 加入2000人交流群637034024 3 28 免责声明?
查看: 1322|回复: 0

C/C++中的64位整型

[复制链接]

13

主题

0

回帖

16

积分

编程入门

Rank: 1

天马币
26
发表于 2024-3-3 09:17:52 | 显示全部楼层 |阅读模式
关于基本类型中的整型,默认的一些 short、int、long 等大家都比较熟悉。int、long 占用 4 个字节32位,最大能表示的无符号正整数也才是 4294967295,也就是 42亿多。现如今社会中各种各样的数量需要整型来表示,但数目已远远超过 4294967295,比如当今的世界人口,等等。比如开发过程中经常要用到的毫秒级时间戳,即代表从1970年到现在为止经过的毫秒数。这些数值都超过了 4294967295,普通的 int 和 long 已经无法表示的下了,所以又出现占用 8个字节的64位整型:long long、_int64、__int64,其无符号能表示的最大正整数是:18446744073709551615,已经非常大了。。。可为什么有三种?下面给大家说下!

C99标准以前:
64位整型是一种没有明确规范的数据类型,各种主流的编译器对64位整型的支持也是标准不一,形态各异。于是便出了 long long、_int64、__int64 这么几种;

C99标准推出:
C99将 long long 纳入到 C++标准中,并规定 long long 类型的位数不低于64位;
Linux上GCC从4.5版本开始,完全支持C99标准,因此可以使用 long long 表示64位整数;
Windows 下 VC6.0 是1998年推出的,所以不支持C99标准,但是Windows为了支持64位整型,自己提供了__int64 类型来表示64位整数,VC6.0中还可以使用少一个下划线的版本 _int64

C++11标准推出:
long long 进入了 C++11 标准,同样定义为位数不低于64位;
GCC4.8开始支持 C++11,将 long long 型定义为64位,Visual Studio 2013 开始支持 C++11,同样将 long long 定义为64位。

备注:不过微软为了支持以前的程序代码,所以在 VC6.0 以及以后的编译器中都支持 _int64 及 __int64 类型。

OK了,基本就给大家讲完了。为了通用性和移植性,建议大家还是使用 long long 类型吧,不过如果大家手头还是古董级别的 VC6.0 或者 低于支持 C++11 标准版本的编译器:VS2002、VS2003、VS2005、VS2008、VS2010、VS2012,那么只能使用 __int64 了。

有的网友会说了,long long 太长了,unsigned long long 更长,还是不如 __int64 方便!其他网友要说了,你直接 typedef 一下不就得了就可以使用短名字了:

typedef signed long long                TSint64;
typedef unsigned long long                TUint64;

这样定义完之后可以直接使用 TSint64 和 TUint64 了。

以上!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

天马阁|C/C++辅助教程|安卓逆向安全| 论坛导航|免责申明|Archiver||网站地图
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表天马阁立场!
任何人不得以任何方式翻录、盗版或出售本站视频,一经发现我们将追究其相关责任!
我们一直在努力成为最好的编程论坛!
Copyright© 2010-2021 All Right Reserved.
快速回复 返回顶部 返回列表