4

我最近在思考浮点数学是如何在计算机上工作的,我很难理解公式背后的所有技术细节。我需要了解加法、减法、乘法、除法和余数的基础知识。有了这些,我将能够制作三角函数和公式。

我可以猜到一些东西,但它有点不清楚。我知道可以通过用信号标志、基数和尾数分隔一个 4 字节整数来确定一个固定点。有了这个,我们有一个 1 位标志、一个 5 位基数和一个 10 位尾数。一个 32 位的字非常适合浮点值 :)

要在两个浮点数之间进行加法,我可以简单地尝试添加两个尾数并将进位添加到 5 位基数?这是一种进行浮点数学(或定点数学,是真的)的方法,还是我完全错了?

我看到的所有解释都使用公式、乘法等,我猜它们看起来很复杂,会更简单一些。我需要一个更针对初学者而不是数学家的解释。

4

3 回答 3

2

请参阅浮点数剖析

于 2010-07-07T22:28:53.210 回答
1

跑步,不要走路,以获得 Knuth 的半数值算法,其中包含执行多精度和浮点运算的美妙直觉和算法。

于 2010-07-07T22:06:23.250 回答
1

基数取决于表示,如果你使用基数 r=2 你永远不能改变它,这个数字甚至没有任何数据告诉你哪个基数有。我认为你错了,你的意思是指数。

要在浮点中添加两个数字,您必须通过旋转尾数使指数等于另一个。右一位表示指数+1,左一位表示指数-1,当您拥有具有相同指数的数字时,您可以将它们相加。

值(x) = 尾数 * 基数 ^ 指数

adding these two numbers

    101011 * 2 ^ 13
    001011 * 2 ^ 12

would be the same as adding:

    101011 * 2 ^ 13
    000101 * 2 ^ 13

使指数彼此相等后,您可以操作。您还必须知道表示是否有隐含位,我的意思是,最高有效位必须是 1,所以通常,正如 iee 标准中已知的那样,但它没有被表示,尽管它用于操作.

我知道这可能有点令人困惑,而且我不是最好的老师,所以你有任何疑问,只要问。

于 2010-07-07T22:16:54.520 回答