十进制整数存储我们都知道采取的是短除法那么浮点类型的小数又是怎么存储的呢硬件存储的数据都是都准确的吗答案是不一定但是具体又是怎么回事呢下面我将明确浮点型存储的方法并通过举例说明硬件为什么不能保证精确存储呢一、计算方法十进制数拆分成整数部分和小数部分分别转换后合并1、整数部分采用短除法–不断除以2取余数倒叙排列2、小数部分采用短乘法—不断乘以2取整数部分0或1正序排列直到结果为0或达到所需精度二、示例1、小数部分可计算到结果为0 的例子2、小数部分不可计算结果为0的例子通过上面计算我们发现十进制0.2的二进制小数是无限循环小数计算机空间有限无法完整保存无限循环小数只能截断近似存储所以说计算中的存储实际是一个近似值不能保证完全的精确。这也是在平时常见直男表达0.20.1不等于0.3的根源。
浮点数的存储简述
十进制整数存储我们都知道采取的是短除法那么浮点类型的小数又是怎么存储的呢硬件存储的数据都是都准确的吗答案是不一定但是具体又是怎么回事呢下面我将明确浮点型存储的方法并通过举例说明硬件为什么不能保证精确存储呢一、计算方法十进制数拆分成整数部分和小数部分分别转换后合并1、整数部分采用短除法–不断除以2取余数倒叙排列2、小数部分采用短乘法—不断乘以2取整数部分0或1正序排列直到结果为0或达到所需精度二、示例1、小数部分可计算到结果为0 的例子2、小数部分不可计算结果为0的例子通过上面计算我们发现十进制0.2的二进制小数是无限循环小数计算机空间有限无法完整保存无限循环小数只能截断近似存储所以说计算中的存储实际是一个近似值不能保证完全的精确。这也是在平时常见直男表达0.20.1不等于0.3的根源。