python - python 如何在乘法后对 float32 数字进行舍入?

标签 python floating-point verilog hardware

我正在硬件上设计一个单精度浮点乘法器,并使用 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/

相关文章:

python - 在 Z3py 中使用多字节字符作为函数和排序名称

Python OpenCV-contrib v3.4.3 VideoCapture.read() 返回 false

c++ - float 的类内静态 const 初始化与 C++ 中的 int 有何不同?

python - 为什么浮点字典键可以用相同的值覆盖整数键?

testing - Incisive Formal Verifier 安装 64 位

python - 如何使用编译的正则表达式和/或列表理解为机器学习管道准备文本?

python - 根据列值合并多个数据帧时缺少列

python - 在 Python 中比较 float 是否相等的最佳方法是什么?

verilog - verilog中的>>>符号是什么?

verilog - Verilog 中 = 和 <= 的区别是什么?