我最近在想浮点数学如何在计算机上工作,我很难理解公式背后的所有技术细节。我需要了解加法,减法,乘法,除法和余数的基础知识。有了这些,我将能够制作三角函数和公式。
我可以猜到它,但有点不清楚。我知道通过将4字节整数除以信号标志,基数和尾数可以得到一个固定点。有了这个,我们有一个1位标志,一个5位基数和一个10位尾数。 32位字是浮点值的理想选择:)
要在两个浮点数之间添加,我可以简单地尝试添加两个尾数并将进位添加到5位基数?这是一种做浮点数学的方法(或者是定点数学,是真的)还是我完全错了?
我看到的所有解释都使用了公式,乘法等等,而且我认为它们看起来很复杂,会更简单一些。我需要一个更多针对初级程序员的解释,而不是数学家。
答案 0 :(得分:2)
答案 1 :(得分:1)
运行,不要走路,以获得Knuth的Seminumerical Algorithms,其中包含执行多精度和浮点运算的精彩直觉和算法。
答案 2 :(得分: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标准中那样,但它没有表示,尽管它用于操作
我知道这可能有点令人困惑,我不是最好的老师,所以你有任何疑问,只要问。