整型
整型指整数型,整数有是否有符号,长短的区分
int
最普通的整数类型,占4字节内存,也就是32位,32位能表示 4294967296
个数字,一半表示负数,一半表示非负数
int a=1;
int b=2147482647; //int能存储的最大值 10位数
int c=-2147483648;//int能存储的最小值
为什么正数少一个,因为要分一个名额给0
重视数据溢出问题
int 的范围是 -2147483648 ~ 2147483647
超出这个范围无法存储
int a=2147483647;
a=a+1;//a增加1
cout<<a<<endl;//输出-2147483648 从最大值变回最小值
long long
long long
实际上是 long long int
的缩写
长整数,占8字节,占的内存多,能存下的范围也大
long long a=9223372036854775807; //最大值 19位
long long b=-9223372036854775808;//最小值
用define 简写 long long
#include <iostream>
#define ll long long //用ll表示long long
using namespace std;
int main(){
ll a=9223372036854775807;
cout<<a;
return 0;
}
short
short
是 short int
的缩写,短整数,-32768 到 32767
unsigned int
无符号表示的是没有负数的意思,用来表示负数的名额全给正数部分,范围就变成了 0~4294967295
可以缩写成 unsigned
unsigned a=0;
a=a-1;
cout<<a;//输出4294967295 unsigned的最大值
unsigned long long
C++能直接存储的最大的值,范围是 0~18446744073709551615
#include <iostream>
#define ull unsigned long long //简写为ull
using namespace std;
int main(){
ull a=0;
a=a-1;
cout<<a; //输出18446744073709551615
return 0;
}
unsigned short
范围是 0~65535
unsigned short 这么废物,为什么还要存在
曾经内存是很珍贵的东西,为了节省内存,所以才有unsigned short。
比如一些古老的游戏上面,血量就是0~100的一个数字,那用int或short都可以,但是short省空间。而且也不存在负数血量,就unsigned short了。这也就是一些游戏你用修改器也只能改到65535的原因了。