您的位置:首页 > 理论基础

Java类型的double、float,你真的明白吗?要想了解其真谛,只要掌握计算机最小存储单位“位”这个真谛即钥匙就迎刃而解了

2017-11-03 17:04 375 查看
Java类型的double、float,你真的明白吗?要想了解其真谛,只要掌握计算机最小存储单位“位”这个真谛即钥匙就迎刃而解了。

1一个计算机的最小存储单元是“位”即0或1,即任何一个数据(阿拉伯数字、英文、汉字等)最终在计算机里存的都是一位一位的0101010。

2一个英文字符,占一个字节,即8位。计算机的最小存储单元是位,即存的是0或1。

3无论是在内存中(即Java中的数据类型如string、double),还是在硬盘中(即oracle的数据库类型如varchar2、number等),最终存入计算机的都是“位”0101010。

总结:

也就是说,计算机中,只有“位”即bite这个概念,什么字节即byte、k、M、G、T等,都是为了方便而衍生出来的概念,只有“位”是实实在在的技术,字节即byte、k、M、G、T等都是虚的概念而已,要搞清楚什么是技术,什么是概念。就像“人工智能”就是虚的概念,“Java”就是实实在在的技术。

那么带着“位”这个真谛,再反过头,看Java类型的double、float。

double:64位

float:32位

也就是说,double类型在计算机中占64位,float占32位。

那么就以double为例,看其是怎么利用这64位表示任何小数的(如1.00,1.20,1.23,0.12,0.00000009,0.900000000等)。



举个例子:

问:

如果要表达1.23,即将0.25存入计算机,计算中double类型的64位实际是怎么存的?

即Java代码如下:

double test=1.23;这一句代码执行时,在内存中test变量是怎么保存的?

答:

肯定不是将1.23直接存入内存的,而是将1.23用64位010101····码进行存储的。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: