常识
类型 字节 范围
byte 1 字节, 8 位 8 位 256(-128 到 127)
bool 1 字节, 8 位 8 位 256(-128 到 127)
char 1 字节, 8 位 8 位 256(-128 到 127)
short 2 字节, 16 位 65535( 32,768 到 32,767)
int 4 字节, 32 位 4294967296( 2,147,483,648 到 2,147,483,647)
unsigned int 4 字节, 32 位 4294967296(0 到 4,294,967,295)
long 4 字节, 32 位 4294967296( 2,147,483,648 到 2,147,483,647)
long long 8 字节, 64 位 18446744073709551616( 9,223,372,036,854,775,808 到 9,223,372,036,854,775,807)
float 4 字节, 32 位 3.4E +/- 38(7 位数)
double 8 字节, 64 位 1.7E +/- 308(15 位数)
这里需要注意的是 long 和 int 的区别, 看上去在范围上两者好像一样但是这是取决于你所在的平台的但无论什么凭条都必须遵守
[ int 至少 16 位, long int 至少 32 位, 并且 sizeof(int) <= sizeof(long) 的规则
这就类似, 你觉得爱人和妻子不可能有区别, 但是在日语里, 这两个确实有天壤之别我们这里都是按照数据类型在一些情况下最小范围进行罗列
所以我们再来个表:
类型 16 位系统 / 字节 32 位系统 / 字节 64 位系统 / 字节
- char 1 1 1
- char* 2 4 8
- short 2 2 2
- int 2 4 4
- long 4 4 8
- long long 8 8 8
我们多罗列了个 unsigned int, 是为了说明 unsigned 的情况所有数据类型除 bool,unsigned 时范围变化都一致所能表示的最大数是原来的 2 倍, 所能表示的范围没变
来源: http://www.jianshu.com/p/1d3a1552ba2f