2.2 整型数据
整型数据分为四种:
类型 | 关键字 | 范围 | 占用空间 |
---|---|---|---|
短整型 | short | -215 ~ 215-1 | 2字节 |
整型 | int | -231 ~ 231-1 | 4字节 |
长整型 | long | -231 ~ 231-1 | 4字节 |
长长整型 | long long | -263 ~ 263-1 | 8字节 |
语法:
[数据类型] [标识符];
后面可以接表达式。
int a;
int b = 1;
int c = b + 2;
演示:
#include <iostream>
using namespace std;
int main()
{
cout << SHRT_MAX << endl;
//这里的SHRT_MAX是系统给的宏定义,代表short类型数据的最大值
//同理,还有其他类似的宏,如LONG_MIN
cout << sizeof(short) << endl;
system("pause");
return 0;
}
运行结果
关于int和long为什么一样,有兴趣的可以查阅以下历史渊源。
原理解析
以short为例,它占用2个字节,一个字节有8位,故一共16为。
第1位是标识正负,1代表负,0代表正;
后15位代表二进制数值。
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
---|
如上述short数据代表十进制的26;
而负数就稍微复杂
以十进制的-1为例,先看绝对值1的二进制:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
---|
再取反
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
---|
再加1
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
---|
这就是short类型的-1表示
所以它的下限为-215,并非-(215-1)。
这里稍微难理解,可以参考其他关于二进制的更详细的资料,本文只作大概介绍。