java核心基础--jdk源码分析学习--基本数据类型

java基本数据类型。三类八种—重点是【记住占几位】【string是类】

  • 逻辑类型 boolean (占几位不一定)
  • 字符类型 char(16-bit)(unicode)
  • 数值类型1
    1.整    数 byte(8-bit)、short(16-bit)、int(32-bit)、long(64-bit)
    2.浮点数 float(32-bit)、double(64-bit) 按IEEE754标准

官方文档:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

IEEE754浮点数标准
32位(单精度),1 8   23,从左到右,1个符号位,8  个指数位,23个有效数字位,偏正值+127
64位(双精度),1 11 52,从左到右,1个符号位,11个指数位,52个有效数字位,偏正值+1023
[百度百科IEEE754]
单精度举例 :
float f=17.625F;
二进制10001.101(整数除2取余,从上往下,小数乘2取整,从下往上)
规格化IEEE754,——1.0001101x2^4
符号位0
指数位4 +偏正值127为131,10000011
有效数10001101,去掉首位1后面补全到23位(规格化后都是1,所以省略节约比特位)
17.625存储0 10000011 00011010000000000000000–(0x41 8D 00 00)

浮点数不精确是因为小数部分不能精确的表示为二进制,只能逼近,从小数转二进制看看出来

你可能感兴趣的:(java)