use*_*231 1 floating-point ieee-754
在这篇wiki 文章中,它显示了23位精度,8位表示指数,1位表示符号
浮点类型中隐藏的第24位在哪里使得(23 + 1)为7个有效数字?
浮点数通常是标准化的.例如,考虑科学记数法,因为我们大多数人都是在学校里学到的.您总是缩放指数,因此小数点前面只有一位数.例如,代替123.456,编写1.23456x10 2.
通常以相同的方式处理计算机上的浮点数(几乎为1):数字被标准化,因此在二进制点之前恰好有一个数字(二进制点,因为大多数工作在二进制而不是十进制).但是有一个区别:在二进制的情况下,这意味着小数点前的数字必须是a 1.因为它总是一个1,所以不需要存储那个位.为了在每个浮点数中保存一点存储空间,该1位是隐式的而不是存储的.
像往常一样,情况比这更多.主要区别在于非规范化数字.例如,考虑一下,如果您使用科学记数法,但您只能使用-99到+99之间的指数.如果你想存储一个像1.234*10 -102这样的数字,你将无法直接这样做,所以它可能只是向下舍入到0.
非规范化数字为您提供了一种处理方法.使用非规范化数字,您将其存储为0.001234*10 -99.假设(通常在计算机上的情况)尾数和指数的位数都是有限的,这会失去一些精度,但仍然避免抛弃所有精度并只是调用它0.
1从技术上讲,存在差异,但它们对所涉及的基本理解没有任何区别.