C++整型数据类型

整型就是没有小数部分的。C++基本整型有char,short,int,long,long long。由于char 类型比较特殊,下面只关于char,int,long,long long。

1.整型short,int,long,long long

C++/C中的整型数据通过使用不同数目的位来存储值,最多能够表示4中不同的整数宽度。而且C++提供一种灵活的标准,它确保了最小长度吗(从C语言借鉴而来)
·short至少16位
·int至少16位,且至少和short一样长
·long至少32位,且至少和int一样长
·long long 至少64位,且至少和long一样长

首先
1.通常,在老式的IBM PC中int为16位的,在Windows XP,Windows Vista,Windows 7等多数计算机中为32位,也就是4字节
2.还有就是整型数据长度和操作系统和编译器的位数有关,例如int在16位操作系统中占2字节,在32和64位中占4字节
3.上述除了int 外,其他数据皆在后面是省略了int
4.上述整型数据类型都有一种不能存储负值的无符号变体(unsigned),其优点是增大了变量能够存储的绝对值上限。例如:short int表示的范围为-32768-32767,而unsigned short int 表示的范围为0-65535.

下面为64位操作系统中整型类型所占大小

类型 所占字节数 表示范围
short int 2 -32,768 ~ 32,767
unsigned short int 2 0 ~ 65,535
int 4 -2,147,483,648 ~ 2,147,483,647
unsigned int 4 0 ~ 4,294,967,295
long int 4 -2,147,483,648 ~ 2,147,483,647
unsigned long int 4 0 ~ 4,294,967,295
long long in 8 -92233372036854775808 ~ 922333720368547758087
unsigned long long int 8 0 to 18,446,744,073,709,551,615
//打印整型占位大小和其表示数值的上下限#include <iostream>
#include <climits>
int main()
{
using namespace std;int n_int =  INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_llong = LLONG_MAX;cout<<"int is "<<sizeof (int)<<endl;
cout<<"short is "<<sizeof(short int)<<endl;
cout<<"long is "<<sizeof(long int)<<endl;
cout<<"long long int"<<sizeof(long logn int)<<endl;cout<<"max values:"<<endl;
cout<<"int: "<<n_int <<endl;
cout<<"short: "<<n_short <<endl;
cout<<"long : "<<n_long  <<endl;
cout<<"long long : "<<n_llong  <<endl;cout<<"min values:"<<endl;
cout<<"int: "<<INT_MIN<<endl;
}

位与字节

计算机内存中的基本单元是位(bit),可以将为看做是电子开关,他有8个开关进行组合,共有2^8个,即256种组合。因此,8位可以表示0-255或者-128-127。同理,16位单元可以表示35536不同的值。
字节(byte)通常是指8位的内存单元,他是描述计算机内存量的度量单位。

limits头文件

头文件limits定义了符号常量,用于表示类型的限制。例如:INT_MAX即int类型的能存储的最大数值。

符号常量 表示
CHAR_BIT char的位数
CHAR_MIN char的最小值
CHAR_MAX char的最大值
SCHAR_MAX signed char的最大值
SCHAR_MIN signed char的最小值
UCHAR_MAX unsigned char的最大值
SHRT_MIN short的最小值
SHRT_MAX short的最大值
USHRT_MAX unsigned char的最大值
INT_MIN int的最小值
INT_MAX int的最大值
UMIN_MAX unsigned int 的最大值
LONG_MIN long int的最小值
LONG_MAX long int的最大值
ULONG_MAX unsigned long的最大值
LLONG_MIN llonglong int的最小值
LLOMG_MAX longlong int的最大值
ULLONG_MAX unsigned longlong int的最大值

典型整型溢出行为



如上图所示,若将一个short类型变量设置为最大值32767,再 加1的话,会变成-32768.若将一个unsigned short类型变量设置为0,再-1,会变成65535.这就是不同数据类型在数据溢出时,产生的变化,有他的重置点,也是溢出点。

选择整型的类型

根据具体变量数据可能用到的最大值和最小值,在选择数据类型,以达到节约空间,避免程序由于不同系统对于统一数据类型的长度判断有差异,而导致程序无法正常使用。
1.如果变量表示的值不能为负,如文档中的字数,人的数量,则可以使用无符号整型,这样可以表示更大的数值。
2.如果知道变量可能表示的整数值大于16位整数的最大值,则使用long。你看认为在这个系统上int是32位的,可以使用。但是,如果我将程序移植到16位系统上的时候,他就不会正常工作了,因为他的数值超过了该系统上判断int长度的16位。
3.要节省内存的话,且数值小于16位表达的最大值,则应使用short而不是int。你可能会说,我这系统上short和int所占长度一样。但是,如果我把程序从int为16位的系统移植到int为32位的系统上时,则int类型的长度会增加一倍,这边导致内存占用增大。

C++整型(short,int,long,longlong)相关推荐

  1. C语言学习6:数据类型 -> 基本类型 -> 整型类型(int、short int、long int、char等)

    目录 1.数据类型的分类 2.基本整型 int 3.短整型 short int 4.长整型 long int 5.双长整型 long long int 6.字符型 char 7.布尔型 bool 1. ...

  2. c++基本数据类型基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:

    基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:单精度型:float 双精度型:double 长 ...

  3. 16-C++-基础-整型short、int、long和long long

    3.1.2 整型 整数就是没有小数部分的数字,如-2.98.-5286和0.整数有很多,如果将无限大的整数看作很大,则不可能用有限的计算机内存来表示所有的整数.因此,语言只能表示所有整数的一个子集.有 ...

  4. (6)关于整型short、int、long和long long

    书籍:<C++ Primer Plus 第6版>第三章: C++对整型short.int.long和long long的长度规则定义如下: - short 至少16位: - int 至少和 ...

  5. 【贪玩巴斯】带你学:C++ tips ——知识点: C++整型short,int,long和long long的区别 2021年12月20日

    [贪玩巴斯]带你学:C++ tips --知识点: C++整型short,int,long和long long的区别 2021年12月20日 C++的整型有short,int,long和long lo ...

  6. mysql 短整型_C++ int,short,long(详解版)

    C++ 有许多不同类型的数据.变量根据其数据类型进行分类,并确定可能存储在其中的信息种类.在这些数据类型中,整型变量只能保存整数. 计算机程序从现实世界收集数据,并以各种方式操作它们.有许多不同类型的 ...

  7. mysql的int多少溢出_mysql 整型(int)数字溢出在程序和数据库设计中的考虑

    以下试以整型(int)抛砖引玉: 一:MySQL5 以MySQL5版本为例,大多数管理员可能把自增数字.或者其它应用数字字段的列属性设置为int类型,int占用4个字节,而int又分为无符号型和有符号 ...

  8. 数据类型_Number、String、LIst、Tuple、Set、Dictionary——Number:整型(int)、浮点型(float)、复数 (complex)

    数据类型是一类值,每个值都只属于一种数据类型. Python3 中有六个标准的数据类型: Number(数字)包含:int.float.bool.complex(复数),bool 是 int 的子类. ...

  9. 整型(int)转时间格式字符串及页面long型转时间格式字符串

    1,如果是封装的整型的话需要在后台进行处理再返回页面 处理过程是这样的 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm ...

  10. C语言 —— 整型(int)类型数据,做函数的参数,传值与传地址

    整型数据的做函数参数注意事项: 如只是使用该数据,则把改值直接传递给函数,直接做函数的参数即可: 若需要在函数中对该数据进行更改,则需要把改值的地址当做函数的参数,进行传递. #include < ...

最新文章

  1. tensorflow---alexnet training (tflearn)
  2. 【性能优化】纳尼?内存又溢出了?!是时候总结一波了!!
  3. 不会英语计算机开车和,驾校学车的那些事儿——技术篇
  4. js用函数实现输出100以内与7有关的数_用JS编写求出100以内的质数
  5. mysql创建表的时候显式申明字符集
  6. 2018.5.5信息安全铁人三项赛数据赛复现
  7. C++ 拷贝构造函数与赋值构造函数调用时机初步01
  8. windows下caffe+CPUOnly实现MNIST手写分类
  9. Java中@WebServlet的使用方法
  10. Linux 工具套件 —— binutils、readelf
  11. MySQL完全自学手册
  12. Java语言程序设计与数据结构(基础篇)原书第11版
  13. Gephi入学教程基础记录
  14. MapGuide Open Source 2.2发布
  15. 计算机前置usb应用,usb前面不能用,教您解决电脑前置USB接口不能使用
  16. Hudi(12):Hudi集成Flink之sql-client方式
  17. java反射的作用于原理、初学者
  18. 手电筒java下载_Android studio编写简单的手电筒APP
  19. 弄底层基础的东西往往慢,枯燥,要慢慢磨
  20. 最新PHP开源采集器/蓝天采集器系统源码

热门文章

  1. Linux安装mql
  2. in语句作用C语言,C语言中IN(ch,OP)是什么意思
  3. 据说,年薪百万的程序员,都是这么开悟的---笑一笑十年少
  4. 单片机51 流水灯基本程序
  5. 物联网温湿度显示控制项目(网页、Android双端显示搭载linux平台网关MQTT通信)
  6. web前端开发主要课程,jquery源码实现原理
  7. OpenCV中图像特征提取与描述
  8. Gunicorn-配置参数
  9. DNS、Http和Https
  10. Android 使用OkHttp支持HttpDNS