跳到主要内容

整型

整型指整数型,整数有是否有符号,长短的区分

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

shortshort 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的原因了。