各数据类型的大小
Posted zhengmengen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各数据类型的大小相关的知识,希望对你有一定的参考价值。
一、Java
各数据类型的字节数与操作系统的位数无关。
数据类型 | 字节数 |
byte | 1 |
short | 2 |
char | 2 |
float | 4 |
int | 4 |
long | 8 |
double | 8 |
boolean | 特殊 |
boolean比较特殊:他理论上只占一个比特,即1/8字节。但实际上,他占1个或者4个字节。
boolean a = true; // a 占4个字节 boolean[] b = new boolean[10]; // b 的元素各占1个字节
注意:①Java中没有sizeof()。
②Java不允许用0代表false,这一点也与C不同。
二、C/C++
sizeof()求字节数。
数据类型 | 32位系统 | 64位系统 |
char | 1 | 1 |
short | 2 | 2 |
int | 4 | 4 |
float | 4 | 4 |
long | 4 | 8 |
long int | 4 | 8 |
long long | 8 | 8 |
double | 8 | 8 |
long double | 8 | 16 |
32位操作系统下,指向任意数据类型的指针,都是占4个字节。
64位操作系统下,指向任意数据类型的指针,都是占8个字节。
另外,32位和64位的定义在于:CPU一次处理数据的能力是32位还是64位,亦即最大寻址空间。
32位的最大寻址空间为2的32次方,也就是4G,也就是说32位系统的处理器最大只支持到4G内存。
以上是关于各数据类型的大小的主要内容,如果未能解决你的问题,请参考以下文章
Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段