前言

一般对于C/C++下int等基本数字类型,主要关注三个维度,长度、取值范围和最大值的宏定义。下面分三个维度说明下。

有三个影响因素:

  • 语言规则限制:比如int是变长,long是定长,double还有精度问题等等;
  • 操作系统:某几个类型,Windows和Linux在32位和64位操作系统上的取值是不一致;
    • 32位和64位系统在Windows下基本数据类型的大小都是一样的。只有指针的大小不一样!32位指针大小为4byte,而64位的指针大小为8byte。
    • 而Linux下64位操作系统是long型是64位的。
    • 详情请看:C++那些细节--32位64位数据类型的区别和windows和Linux的数据类型对比(有微软的解释)
  • 编译器:编译器才是区分32位和64位的关键因素,因为64位操作系统也可以运行32位程序;但64位程序只能在64位操作系统上运行。

目录

1.长度

2.取值范围

3.最大值的宏定义

4.参考文档:


1.长度

图表:C/C++基础数字类型的取值范围
类型 取值范围 位数
unsigned   int 0~4294967295 10位
int 2147483648~2147483647 10位
unsigned long 0~4294967295 10位
long 2147483648~2147483647 10位
long long -9223372036854775808~9223372036854775807 19位
unsigned long long 0~1844674407370955161 19位
__int64 -9223372036854775808~9223372036854775807 19位
unsigned __int64 0~18446744073709551615 20位

关于占用字节数,详情在这里:32位与64位下各类型长度对比,已讲的很好,我不再赘述。

注:I表示int类型,L表示long类型,P表示pointer指针类型,32表示32位系统/编译器,64表示64位系统/编译器。

2.取值范围

首选,说一下C/C++下int等基本数字类型的长度和取值范围。

3.最大值的宏定义

C++中, 经常会使用, 某些类型的最大值, 如int的最大整数(INT_MAX), C的函数中, 包含了这些宏定义.

头文件: #include <climits>


维基百科上的相关说明:


4.参考文档:

32位与64位下各类型长度对比

C++ - 内置类型的最大值宏定义

https://www.runoob.com/cprogramming/c-standard-library-limits-h.html

https://zh.wikipedia.org/wiki/Limits.h

C++中int、long和double的取值范围和最大值,以及32位和64位的差异解读相关推荐

  1. 64位linux,sizeof(int),C中sizeof()的用法——32位和64位下的sizeof()

    机器平台:X86_64 处理器 操作系统:Red Hat 4.1.2-14 编译器: gcc version 4.1.2 20070626 Size of char is:               ...

  2. IEEE754标准中32位、64位浮点数的取值范围

    目录 32位 对于正浮点数 对于零 对于负浮点数 64位 对于正浮点数 对于负浮点数 IEEE标准中用来表示一个浮点数,其中 决定正负号,是尾数,是阶数. 32位 在32位浮点数中,符号位占1位,尾数 ...

  3. 【笔试题】C语言结构体中,不同的数据类型在32位和64位下所占字节的区别

    题目 如下C程序,在64位处理器上运行后sz的值是什么? struct st {int *p;int i;char a; }; int sz=sizeof(struct st); 答案 16 解析 考 ...

  4. [置顶] 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置

    前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE来限制内存.但是,在SQLServer2012以后,这个选项将被弃用,所以不能使用 ...

  5. 台式计算机32位和64位的区别,电脑操作系统中32位和64位到底有哪些区别?

    xp系统之后,开始有了Windows7.如果你经常关注,并且安装软件的话,会常常听到32位和64位,那么这到底是什么意思呢?它们有什么区别了? 1.一般我们说的32位和64位,是指三种情况. 一种是3 ...

  6. 64位 gnuwin32_linux系统中32位和64位的区别?

    通称说 x86也是指 IA32构架CPU,也就是说cpu是32位的,只能安装32位的os了:而x86-64或者IA-64是说cpu支持64位,可以安装64位的os,跑64位的应用 不懂可以看如下总结 ...

  7. 计算机32位操作系统指什么,电脑操作系统中32位和64位到底有哪些区别?

    电脑操作系统中32位和64位到底有哪些区别?xp系统之后,开始有了Windows7.如果你经常关注,并且安装软件的话,会常常听到32位和64位,这两个有什么区别呢?下面就由小编我来告诉你吧! 1.一般 ...

  8. c++中 int, long long, double 等数据类型的长度及范围整理

    先附上一个比较直观的表,长度表示字节: byte: 字节  bit: 位 1. 短整型short: 所占内存大小:2byte=16bit: 所能表示范围:-32768~32767:(即-2^15~2^ ...

  9. java double long 取值_由一道题引起的思考? java中 long 和double都是64位。为什么double表示的范围大那么多呢?...

    由一道题引起的思考? java中 long 和double都是64位.为什么double表示的范围大那么多呢? 百度标准答案是这样子的: double是n*2^m(n乘以2的m次方)这种形式存储的,只 ...

最新文章

  1. 使用Jupyter Notebook
  2. 月薪8k 和 月薪28K的程序员差距在哪里?
  3. boost::math::quadrature::exp_sinh用法的测试程序
  4. [转]kafka介绍
  5. 网络编程项目(聊天室项目)
  6. 逆元java_逆元 - 阿聊 - 博客园
  7. 1.5编程基础之循环控制_45金币
  8. Win7系统删除微软拼音
  9. 用C++ 设计一个不能被继承的类
  10. 用数据追女神:追女生如同创业
  11. [笔试面试题] 10-C和C++区别相关
  12. 在tomcat中添加虚拟主机,myeclipse中整合jdk和tomcat
  13. asp.net助学贷款管理系统
  14. 转载——巨详细的MD5加盐,大佬详解
  15. IIS6 配置ASP.NET网站伪静态
  16. android 禁止第三方相机,谷歌突然宣布,Android 11推出新规,第三方相机软件猝不及防...
  17. 数据分析怎么学?我画了一个导图,又找到22本书
  18. 按Enter键调用登录按钮
  19. 大白菜U盘装系统工具,被爆出病毒!
  20. op07数据手册分析

热门文章

  1. 【1011】甲流疫情死亡率
  2. Linux下删除特殊字符的文件或文件夹
  3. 【服务器数据恢复】存储之间迁移数据时数据损坏的数据恢复案例
  4. #力扣 LeetCode1646. 获取生成数组中的最大值 @FDDLC
  5. dubbo中标签的使用
  6. Mysql命令insert into:向表中插入数据(记录)
  7. 手机屏幕常见故障_手机触摸屏常见问题及解决方法
  8. 阿里云oss图片的常用处理方法小结
  9. SDN的深入思考(1):SDN的核心本质到底是什么?
  10. linux shell编写脚本,执行命令同时操作多台主机