C++整型(short,int,long,longlong)
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)相关推荐
- 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. ...
- c++基本数据类型基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:
基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:单精度型:float 双精度型:double 长 ...
- 16-C++-基础-整型short、int、long和long long
3.1.2 整型 整数就是没有小数部分的数字,如-2.98.-5286和0.整数有很多,如果将无限大的整数看作很大,则不可能用有限的计算机内存来表示所有的整数.因此,语言只能表示所有整数的一个子集.有 ...
- (6)关于整型short、int、long和long long
书籍:<C++ Primer Plus 第6版>第三章: C++对整型short.int.long和long long的长度规则定义如下: - short 至少16位: - int 至少和 ...
- 【贪玩巴斯】带你学: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 ...
- mysql 短整型_C++ int,short,long(详解版)
C++ 有许多不同类型的数据.变量根据其数据类型进行分类,并确定可能存储在其中的信息种类.在这些数据类型中,整型变量只能保存整数. 计算机程序从现实世界收集数据,并以各种方式操作它们.有许多不同类型的 ...
- mysql的int多少溢出_mysql 整型(int)数字溢出在程序和数据库设计中的考虑
以下试以整型(int)抛砖引玉: 一:MySQL5 以MySQL5版本为例,大多数管理员可能把自增数字.或者其它应用数字字段的列属性设置为int类型,int占用4个字节,而int又分为无符号型和有符号 ...
- 数据类型_Number、String、LIst、Tuple、Set、Dictionary——Number:整型(int)、浮点型(float)、复数 (complex)
数据类型是一类值,每个值都只属于一种数据类型. Python3 中有六个标准的数据类型: Number(数字)包含:int.float.bool.complex(复数),bool 是 int 的子类. ...
- 整型(int)转时间格式字符串及页面long型转时间格式字符串
1,如果是封装的整型的话需要在后台进行处理再返回页面 处理过程是这样的 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm ...
- C语言 —— 整型(int)类型数据,做函数的参数,传值与传地址
整型数据的做函数参数注意事项: 如只是使用该数据,则把改值直接传递给函数,直接做函数的参数即可: 若需要在函数中对该数据进行更改,则需要把改值的地址当做函数的参数,进行传递. #include < ...
最新文章
- tensorflow---alexnet training (tflearn)
- 【性能优化】纳尼?内存又溢出了?!是时候总结一波了!!
- 不会英语计算机开车和,驾校学车的那些事儿——技术篇
- js用函数实现输出100以内与7有关的数_用JS编写求出100以内的质数
- mysql创建表的时候显式申明字符集
- 2018.5.5信息安全铁人三项赛数据赛复现
- C++ 拷贝构造函数与赋值构造函数调用时机初步01
- windows下caffe+CPUOnly实现MNIST手写分类
- Java中@WebServlet的使用方法
- Linux 工具套件 —— binutils、readelf
- MySQL完全自学手册
- Java语言程序设计与数据结构(基础篇)原书第11版
- Gephi入学教程基础记录
- MapGuide Open Source 2.2发布
- 计算机前置usb应用,usb前面不能用,教您解决电脑前置USB接口不能使用
- Hudi(12):Hudi集成Flink之sql-client方式
- java反射的作用于原理、初学者
- 手电筒java下载_Android studio编写简单的手电筒APP
- 弄底层基础的东西往往慢,枯燥,要慢慢磨
- 最新PHP开源采集器/蓝天采集器系统源码