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····码进行存储的。
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····码进行存储的。
相关文章推荐
- java当中float以及double数据类型的掌握
- java当中float以及double数据类型的掌握
- 计算机存储单位与Java数据类型
- java当中float以及double数据类型的掌握
- java当中float以及double数据类型的掌握
- java中数据类型转换 Integer String Long Float Double Date
- (转)单精度类型(float)和双精度类型(double)存储
- java类型转换 Integer String Long Float Double Date
- Java中float和double类型的数据在内存中是怎样存放的
- Java中float、double、long类型变量赋值添加f、d、L尾缀问题
- float ,double类型在内存中存储方式
- java 中float和double类型数据取值详解
- java问题总结之3--用非科学计数法输出int、float、double等类型数据
- Java 浮点数 float和double类型的表示范围和精度
- Java输出double类型中的最小正数和最大正数
- 转载——C语言中float,double类型,在内存中的结构(存储方式)
- 2.3 分别定义float,double类型的变量各一个,并依次输出它们的存储空间大小
- 关于java的double类型和float类型
- Java类型Float&&Double
- Java 浮点数float和double类型的表示范围和精度