Math 如何减去两个IEEE-754正数?

Math 如何减去两个IEEE-754正数?,math,floating-point,ieee-754,Math,Floating Point,Ieee 754,所以我有点无助。我想我知道如何对IEEE-754数字进行加法,但我在减法方面有很大的问题。我觉得我的想法是正确的,但我想和你们核实一下 因此,我们有以下两个IEEE-754编号: x: 0 1000 0010 100 1000 0000 0000 0000 0000 y: 0 1000 0011 010 1001 0000 0000 0000 0000 因为我们需要正数,我们要减去它们,我的想法是取y,倒数尾数,然后计算 x+(-y) 一位家庭教师告诉我,这是不正确的,我必须保持数字为正,然

所以我有点无助。我想我知道如何对IEEE-754数字进行加法,但我在减法方面有很大的问题。我觉得我的想法是正确的,但我想和你们核实一下

因此,我们有以下两个IEEE-754编号:

x: 0 1000 0010 100 1000 0000 0000 0000 0000 
y: 0 1000 0011 010 1001 0000 0000 0000 0000
因为我们需要正数,我们要减去它们,我的想法是取y,倒数尾数,然后计算

x+(-y)

一位家庭教师告诉我,这是不正确的,我必须保持数字为正,然后减去它们。他为什么和怎么没有告诉我

谁能告诉我做这件事的正确方法是什么

我对x-y方式的想法:

  • 将指数从x扩展到1000 0011
  • 将x的尾数移1
  • 用常规方法减去这两个数字

  • 所有产生正确结果的方法都是正确的。通过从较大的绝对值中减去较小的绝对值并相应地调整符号位,舍入可能更容易处理。同样,使用正数只会使处理(可选)隐式1稍微容易一些。所有产生正确结果的方法都是正确的。通过从较大的绝对值中减去较小的绝对值并相应地调整符号位,舍入可能更容易处理。同样,处理正数只会使处理1OP的(可选)隐式1更容易一些。OP的1-2-3想法基本上是正确的,但可能遗漏了隐含位

       s eeee eeee mmm mmmm mmmm mmmm mmmm mmmm
    x: 0 1000 0010 100 1000 0000 0000 0000 0000 
    y: 0 1000 0011 010 1001 0000 0000 0000 0000
    
       s eeee eeee immm mmmm mmmm mmmm mmmm mmmm
    x: 0 1000 0010 1100 1000 0000 0000 0000 0000 
    y: 0 1000 0011 1010 1001 0000 0000 0000 0000
    
    1解释隐含位

       s eeee eeee mmm mmmm mmmm mmmm mmmm mmmm
    x: 0 1000 0010 100 1000 0000 0000 0000 0000 
    y: 0 1000 0011 010 1001 0000 0000 0000 0000
    
       s eeee eeee immm mmmm mmmm mmmm mmmm mmmm
    x: 0 1000 0010 1100 1000 0000 0000 0000 0000 
    y: 0 1000 0011 1010 1001 0000 0000 0000 0000
    
    2调整较小的数值,以形成一个共同的指数。(增量博览会,移位“尾数”)

    2.5如果符号位不同,翻转第二个并执行加法。然而,既然在这种情况下也是如此,就没什么可做的了

    3.用大的减去小的

       s eeee eeee immm mmmm mmmm mmmm mmmm mmmm
    y: 0 1000 0011 1010 1001 0000 0000 0000 0000
    x: 0 1000 0011  110 0100 0000 0000 0000 0000 0 
    d: 0 1000 0011 0100 0101 0000 0000 0000 0000 0
    
    4调整,使其为隐含的1(移位“尾数”,减量指数)

    5.考虑反向减法。(翻转标志)

    6轮-在这种情况下,没有值变化

       s eeee eeee immm mmmm mmmm mmmm mmmm mmmm
    d: 1 1000 0010 1000 1010 0000 0000 0000 0000
    
    7删除隐含位以形成编码结果

       s eeee eeee mmm mmmm mmmm mmmm mmmm mmmm
    d: 1 1000 0010 000 1010 0000 0000 0000 0000
    
    非数字、次法线、溢出、无穷大和四舍五入的详细信息为简洁起见略去



    注:IEEE-754使用的是“有效”,而不是“尾数”。

    OP的1-2-3思想基本上是正确的,但可能遗漏了隐含位

       s eeee eeee mmm mmmm mmmm mmmm mmmm mmmm
    x: 0 1000 0010 100 1000 0000 0000 0000 0000 
    y: 0 1000 0011 010 1001 0000 0000 0000 0000
    
       s eeee eeee immm mmmm mmmm mmmm mmmm mmmm
    x: 0 1000 0010 1100 1000 0000 0000 0000 0000 
    y: 0 1000 0011 1010 1001 0000 0000 0000 0000
    
    1解释隐含位

       s eeee eeee mmm mmmm mmmm mmmm mmmm mmmm
    x: 0 1000 0010 100 1000 0000 0000 0000 0000 
    y: 0 1000 0011 010 1001 0000 0000 0000 0000
    
       s eeee eeee immm mmmm mmmm mmmm mmmm mmmm
    x: 0 1000 0010 1100 1000 0000 0000 0000 0000 
    y: 0 1000 0011 1010 1001 0000 0000 0000 0000
    
    2调整较小的数值,以形成一个共同的指数。(增量博览会,移位“尾数”)

    2.5如果符号位不同,翻转第二个并执行加法。然而,既然在这种情况下也是如此,就没什么可做的了

    3.用大的减去小的

       s eeee eeee immm mmmm mmmm mmmm mmmm mmmm
    y: 0 1000 0011 1010 1001 0000 0000 0000 0000
    x: 0 1000 0011  110 0100 0000 0000 0000 0000 0 
    d: 0 1000 0011 0100 0101 0000 0000 0000 0000 0
    
    4调整,使其为隐含的1(移位“尾数”,减量指数)

    5.考虑反向减法。(翻转标志)

    6轮-在这种情况下,没有值变化

       s eeee eeee immm mmmm mmmm mmmm mmmm mmmm
    d: 1 1000 0010 1000 1010 0000 0000 0000 0000
    
    7删除隐含位以形成编码结果

       s eeee eeee mmm mmmm mmmm mmmm mmmm mmmm
    d: 1 1000 0010 000 1010 0000 0000 0000 0000
    
    非数字、次法线、溢出、无穷大和四舍五入的详细信息为简洁起见略去



    注:IEEE-754使用的是“有效”,而不是“尾数”。

    倒数
    y
    是不正确的,因为尾数没有存储在2os补码中,所以我们不能倒数,因为这需要计算
    0-y
    ,这又是一次减法。。。所以你需要1。对数字进行排序,以便将abs较小的数字从abs较大的数字中减去,检查符号(在某些情况下,您的操作会转换为加法),执行减法或加法,恢复结果符号(应用以前阶段的所有更改)倒数
    y
    是不正确的,因为尾数没有存储在2os补码中,所以我们不能倒数,因为这需要计算
    0-y
    ,这又是一次减法。。。所以你需要1。对数字进行排序,以便将abs较小的数字从abs较大的数字中减去,检查符号(在某些情况下,您的操作会转换为加法),执行减法或加法,恢复结果符号(应用以前阶段的所有更改)