我正在硬件上设计一个单精度浮点乘法器,并使用 python 来验证我的设计。这是单精度浮点格式。
s |指数 |尾数
相乘的结果是
(S1^S2)| E1 + E2 - 127 |尾数1 * 尾数2
在执行两个尾数的乘法后,我在对数字进行舍入时遇到问题。您知道,尾数是 24 位(23 位和 1 个隐藏位),两个 24 位相乘将得到 48 位。尾数字段只能包含 23 位,所以我尝试截断它,如下所示:
example of mantissa truncating 。但与 python float32 乘法相比,结果似乎不太正确。
所以我来这里问一下python如何处理尾数乘法的事情。谢谢。
最佳答案
Python(和许多其他语言)使用 IEEE754 默认舍入模式,称为“舍入到最近的偶数”。您可以在这里阅读更多相关信息:https://en.wikipedia.org/wiki/IEEE_754#Rounding_rules
关于python - python 如何在乘法后对 float32 数字进行舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56420894/