Floating point 根据exp和frac,位值和浮点的关系如何?假设我了解“如何”;s";作品
所以,从程序员的角度来看,我仍然在研究计算机系统中的浮点运算,我在浮点运算方面做得更进一步 现在,我发现这是一个奇怪的集合: 0 0001 000=最小范数,其=0.015625 0 0110 110=第一个=0.875 现在,我知道第一个0只是s,接下来的4个0是exp,之后的3个是frac,我不完全理解的是它们背后的数学 例如,根据我所了解的二进制表示法,到目前为止,在0 0110中,110应该是53/256,但这与书中的M表示法(14/8)并不接近Floating point 根据exp和frac,位值和浮点的关系如何?假设我了解“如何”;s";作品,floating-point,Floating Point,所以,从程序员的角度来看,我仍然在研究计算机系统中的浮点运算,我在浮点运算方面做得更进一步 现在,我发现这是一个奇怪的集合: 0 0001 000=最小范数,其=0.015625 0 0110 110=第一个=0.875 现在,我知道第一个0只是s,接下来的4个0是exp,之后的3个是frac,我不完全理解的是它们背后的数学 例如,根据我所了解的二进制表示法,到目前为止,在0 0110中,110应该是53/256,但这与书中的M表示法(14/8)并不接近 然后我们有最小的法线,是9/8。我知道s
然后我们有最小的法线,是9/8。我知道s、exp和frac是如何表示的,但我仍然不完全清楚这些二进制表示来自何处 问题涉及一些未指定的8位浮点格式。假设此格式遵循IEEE-754二进制浮点格式设置的模式,我将回答这个问题 问题表明第一位是符号位,接下来的四位是指数位,最后三位是有效位(分数部分)。设s为符号位,e为指数位,f为有效位 在IEEE-754格式中,指数位是表示什么的关键:
- 如果e中的所有位都为零,则对象表示零或低于正常值的数字
- 如果e中的所有位都是一,则对象表示无穷大或NaN
- 否则,该对象表示一个正常数
- 如果s为0或1,则符号s为+1或−分别为1
- e的位被解释为一个二进制数字,并减去一些偏差以产生指数e。偏差是e的最大可能值的一半,向下舍入。例如,对于四位,最大值为11112,即1510。其中的一半,四舍五入,是7。因此,如果e的位为“0110”,则指数e为6−7 = −一,
- 有效位F是通过形成一个以“1”开头的二进制数字,后跟F的位来计算的。F是这个二进制数字的值。例如,如果f为“110”,则形成数字“1.110”,其值为1+½+¼=1.75
- 对象的位表示的值是S•2E•F。因此,对于位“0 0110 110”,表示的值是+1•2−1•1.75=0.875
- 如果s为0或1,则符号s为+1或−分别为1
- 指数E的值与最小正常数的值相同。这是1减去偏差,所以E=1−7 = −六,
- 有效位F是通过形成一个以“0”开头的二进制数字,后跟F的位来计算的。F是这个二进制数字的值
- 由对象的位表示的值是S•2E•F
- 如果f全为零,则该值为无穷大。它是+无限或者−根据位s的无穷大
- 否则,该对象为NaN。IEEE-754并不严格,但是,如果f的第一位是1,则对象应表示安静的NaN。否则,它应该表示一个信令NaN。否则,f位可用于诊断或其他用途