基本数据类型相关tips

32位和64位的区别

区别在于一次存取数据的位数。

c/c++ 数据类型区分32和64,但java不区分,因为JVM具有跨平台性,为看达到跨平台通信。


基本数据类型字节数

char:一个字节(java中2个字节)。

short int:2字节。

int:32位系统:4字节;64位大多是4字节(少数8字节)。

指针:32位:4字节;64位:8字节。

float:4字节。

double:8字节。

long:8字节。


基本数据类型取值范围

有符号的:-2^(字节数*8-1)~2^(字节数*8-1)-1

无符号的:0-2^(字节数*8-1)-1

例如:int取值范围:-2^31~2^31-1


取值范围的解释

无符号的:即非负数

以int为例:最小值0,最大值的二进制为01111111 24个1,即2^31-1

有符号的:

以int为例:最大值和有符号一致,最小值为正数的二进制取反,即10000000 24个0,即-2^31。


关于补码

正数的补码是本身,负数的补码是其绝对值的二进制取反+1,0的补码是000000。

例如int,5是0101,-5就是1010+1=1011。

反推:0101+1011=(最高位1被舍弃)0000=0。正确!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容