在说这个之前,我们先看看十进制到二进制的转换过程
整数的十进制到二进制的转换过程
用白话说这个过程就是不断的除2,得到商继续除,直到商小于1为止,然后他每次结果的余数倒着排列出来就是它的二进制结果了,直接上图
说一下为什么倒着排列就是二进制结果哈
通俗点说就是整数是一步一步除下来的,那回去不得一步一步乘上去?也就是说从上到下就是二进制从低位到高位的过程。
小数十进制到二进制的转换过程
小数的十进制到二进制的转换其实和整数类似,只不过算的方式变成了乘法,也就是用小数不断的乘2,然后得到的结果的整数部分拿出来,接着剩下的小数部分继续乘2,直到小数部分为0为止,直接上图~
二进制结果中的二分之一是转换后的,其实就是2的-1次方,-2次方。。。
当然了,小数转二进制的过程中,很多情况下都是无尽的,接着上图
所以可以看到这样的循环下去是得不到二进制的结果的,所以计算机就要进行取舍。也就是IEEE 754规范
IEEE 754规范
IEEE 754规定了四种标识浮点数值的方式,单精确度(32位),双精确度(64位),延伸单精确度(43比特以上,很少用)和延伸双精确度