浮点数的转化与浮点数的加减法

浮点数的转化

浮点数:小数点位置可以浮动的数据。

        常用下式表示:N=M*R^{E}    (类似于科学计数法)

        N为浮点数,M为尾数,E为阶码(即指数),R为阶的基数(一般R为2或8或16)

浮点数在计算机里面的表示:阶符+阶码+数符+尾数<二进制>

        eg:分别求X=-0.875*2^{1} , Y=0.625*2^{2} 的浮点数,注:阶符1位,阶码2位,数符1位,尾数3位

        转化为二进制X=-0.111*2^{01}Y=0.101*2^{10}

       

        X,Y写为7位浮点数为:X=0 01 1 001

                                            Y=0 10 0 101

 

浮点数的加减法

步骤:

1.对阶——2.尾数运算——3.规格化处理——4.舍入处理——5.溢出判断

对阶:目的—使两个操作数的小数点对齐,即让阶码相同

           操作—先求阶差(△E),即阶码小的尾数右移1位,阶码+1,直到相同为止   (只是尾数右移,不包含数符)

                              注:求阶差(△E)—前半部分做差(阶符+阶码)

                                         //对上题X与Y求阶差  [△E]补=001-010=111   真值为-001  即△E=-1   ∴对阶后X=0 10 1 100

尾数运算:将尾数相加减   (连同数符位)     注:相减是加其补码

                                        //  对上题X+Y有     

                                                                

规格化处理:

        规格化处理主要是针对浮点数的尾数部分,规格化的尾数格式要求如下:

        单符号位:
        0.1XX……X (尾数采用原码、补码、反码表示,正数的规格化格式)
        1.0XX……X (尾数采用补码、反码表示,负数的规格化格式)
        1.1XX……X (尾数采用原码表示,负数的规格化格式)

        双符号位:

        尾数采用补码表示形式时,正数的规格化格式为00.1XXX,负数的规格化格式为:11.0XXX

             注:单符号位(0正1负)      双符号位(00正11负) 

                     引入双符号位是为了检测是否有溢出,符号位为"01"的时候称为"上溢",为"10"时,称为"下溢"。

        小结补码单符号位是否规格化标准:符号位与尾数最高位不同才算是规格化,相同为非规格化。

        对于非规格化的数:左归和右归

                左规:尾数需要向左移位,每移1位阶码值减1,直到为规格化数为止。

                右规:尾数需要向右移位,每移1位阶码值加1,直到为规格化数为止。

                        必须右归:运算结果产生溢出(双符号位01,10,最高符号位有进位或借位)

                                     在最高有效位补相应数量的0,10.XXX格式右规后的格式为11.0XXX,01.XXX格式右规后的格式为00.1XXX   

                        必须左归:符号位与尾数最高有效位相同时(出现0.1XX or 1.0XX)

                                    左规时最低有效位补相应位数的0,eg:1.1101111——将11011111左移两位——1.01111100

舍入处理

        对阶,左归,右归时,尾数要向左or右移位,移位后尾数就会有误差,因此须舍入处理,减小误差。

                两种减小误差的方法:

                “0舍1入法”:类似四舍五入,即左规或右规时丢弃的是0,则舍去不计,若丢弃的是1,要将尾数的末尾加1。

                                eg同上:1.11011111,需要左规,得到1.01111100

                可见左移时去掉的是前面的两位1,此情况就需要在尾数的最后一位加1,这样进行舍入处理的结果就是:1.01111101

                ‘‘恒置1法’’
                只要有数位被左规或者右规丢弃,就要在尾数的末尾恒置1。精确度不高,∵丢弃0和1的概率各占一半。

溢出处理

        双符号位补码形式:出现了"01"或者是"10"的形式就直接判断溢出

        单符号位:需要根据对尾数进行规格化处理后的阶码是否超出了当前阶码所能表示的取值范围来判定。

                右规时:尾数每向右移一位阶码就加1,最终可能导致阶码超出了当前阶码所能表示的数值范围,这称为"上溢"。

                                 即:当阶码有4位(1个符号位)时,最大表示111(+7),如果再右移一位,阶码加1,发生上溢

                左规时:同理。因为左规后可能超出了用于存储阶码的存储位所能表示的最小值,称为"下溢"。

        若是上溢,计算机立即停止运算,做中断处理。

        若是下溢,计算机将整个尾数按0处理。

 

两个例子

第一题:

第二题:

 

 

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IEEE 754是一种用于浮点数运算的标准,它定义了浮点数的表示方法、舍入规则和运算规则。Verilog是一种硬件描述语言,可用于描述数字电路的行为和结构。 在Verilog中实现IEEE 754的加减法运算可以按照以下步骤进行: 1. 首先,根据IEEE 754标准,将输入的浮点数进行规范化,即将其转化为科学计数法的形式,其中包括符号位、指数位和尾数位。 2. 接下来,在Verilog中设计一个加法器,用于执行浮点数的加法运算。该加法器需要根据输入的指数位和尾数位执行加法运算,并根据指数位和尾数位的范围进行舍入操作。舍入操作的目的是将结果修约为规定位数的尾数,以满足IEEE 754标准的要求。 3. 类似地,设计一个减法器,用于执行浮点数的减法运算。减法器可以通过将减数取反,然后利用加法器执行加法运算来实现减法运算。 4. 最后,根据加法器和减法器的输出结果,重新组合浮点数的符号位、指数位和尾数位,得到最终的运算结果。 需要注意的是,在Verilog中实现IEEE 754加减法运算时,还需要考虑到处理特殊情况,如无穷大、NaN和零等。 总之,通过设计合适的加法器和减法器,并根据IEEE 754标准执行规范化和舍入操作,我们可以在Verilog中实现IEEE 754的加减法运算。 ### 回答2: IEEE 754是一种用于浮点数运算的标准,包括加减法在内。Verilog是一种硬件描述语言,用于设计和模拟数字电路。因此,我们可以使用Verilog来实现IEEE 754标准下的浮点数加减法。 在Verilog中实现IEEE 754加减法,首先需要定义浮点数的表示形式,包括符号位、指数位和尾数位。然后,我们可以借助Verilog的运算操作符来执行加减法运算。 对于加法运算,我们需要对两个浮点数的尾数位进行对齐,并将它们相加。同时,还需要考虑进位和溢出的情况。在Verilog中,我们可以使用加法操作符 "+" 来实现这一操作。 对于减法运算,我们可以将减法转化为加法。具体做法是将减数取反,然后使用加法操作符将减数与被减数相加。同样,需要对尾数位进行对齐,并考虑进位和溢出的情况。 在Verilog中,我们可以使用乘法操作符 "*" 来实现取反操作,然后再使用加法操作符 "+" 来执行加法运算。 总之,通过合理地使用Verilog中的运算操作符,并根据IEEE 754标准对浮点数的表示形式进行处理,我们可以实现浮点数加减法运算。这可以通过Verilog的模块化和并行性的特点来实现高效的硬件电路设计,以满足不同应用场景中对浮点数计算的需求。 ### 回答3: IEEE 754 标准是一种浮点数表示法,用于在计算机中进行浮点数加减法运算。而 Verilog 是一种硬件描述语言,常用于数字电路的设计与仿真。 在 Verilog 中实现 IEEE 754 的加减法运算,需要先根据标准定义好浮点数的位数和符号位,以及指数位和尾数位的长度。然后,通过使用 Verilog 的模块化设计概念,可以将加减法运算划分为多个步骤来实现。 对于加法运算,首先需要将两个浮点数的小数部分对齐,同时根据指数位的差异进行对阶操作,以保证两个浮点数的小数点位置一致。然后,将对齐后的尾数相加,同时进行溢出和舍入处理,得到最终的加法结果。 对于减法运算,可以将减法转化为加法运算,通过将减数取相反数,然后按照加法的方式进行计算。这样就可以利用已经实现的加法模块来完成减法运算。 在 Verilog 中,可以使用模块化设计的概念,将加减法运算封装成函数或模块,可以更好地重用和组合。同时,根据仿真或综合的需求,可以进行不同层次的建模,以实现不同精度和性能的加减法计算。 综上所述,通过在 Verilog 中实现 IEEE 754 的加减法运算,可以有效地进行浮点数的计算和处理,满足实际应用中对精度和性能的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值