主要介绍针对不同操作系统下的数据类型大小及取值范围。
首先针对操作系统主要分为16、32、64,而个操作系统为何有16、32、64这样的方式来划分,主要有字(word)的概念,各操作系统字(word)与字节(byte)和比特位(bit)的关系如下
16位: 1(word)=2(byte)=16(bit);
32位: 1(word)=4(byte)=32(bit);
64位: 1(word)=8(byte)=64(bit);
在任何操作系统下 1(byte)= 8(bit);
数据类型 | 16位(bit) | 取值范围 | 32位(bit) | 取值范围 | 64位(bit) | 取值范围 | |
char | signd | 1 | -128~127 | 1 | -128~127 | 1 | -128~127 |
unsigned | 1 | 0~255 | 1 | 0~255 | 1 | 0~255 | |
int | signd | 2 | -3768~32767 | 4 | - | 4 | - |
unsigned | 2 | 0~65535 | 4 | 4 | |||
short | signd | 2 | -3768~32767 | 2 | -3768~32767 | 2 | -3768~32767 |
unsigned | 2 | 0~65535 | 2 | 0~65535 | 2 | 0~65535 | |
long | signd | 4 | - | 4 | - | 8 | - |
unsigned | 4 | | 4 | | 8 |
| |
long long | signd | 8 | - | 8 | - | 8 | - |
unsigned | 8 | 8 | 8 | ||||
float | 4 | 小数点后6~7位 | 4 | 小数点后6~7位 | 4 | 小数点后6~7位 | |
double | 8 | 小数点后15~16位 | 8 | 小数点后15~16位 | 8 | 小数点后15~16位 | |
指针 | 2 | 4 | 8 |