FPGA的IEEE754协议浮点数加减法运算原理及过程分析

FPGA的IEEE754协议浮点数加减法运算原理及过程分析


前言

本文先介绍IEEE754的协议的原理,然后根据原理f,分解十进制100.25用浮点数如何表示。计算浮点数100.25+0.25的详细计算过程,有进位有借位的浮点数运算过程,主要以图片格式展示,因为不太会这个编辑器。

一、IEEE754协议格式书写100.25(十进制)

标准格式:

在这里插入图片描述
在这里插入图片描述

二、计算过程

1.下面我们来讲浮点数加法:如100.25+0.25怎么算

在这里插入图片描述
在这里插入图片描述

``

2.有进位的浮点数加法运算2+6

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

``

有借位的浮点数减法8.25-1.25

提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

在这里插入图片描述
在这里插入图片描述

  • 21
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
IEEE 754单精度点数的表示方式是32位二进制数,其中1位为符号位,8位为指数位,23位为尾数位。其表示格式如下图所示: ``` 符号位 指数位 尾数位 s e7 e6 e5 e4 e3 e2 e1 e0 m22 m21 ... m0 ``` 其中,s表示符号位,0表示正数,1表示负数;e表示指数位,采用移码的形式表示,即将真实指数值加上一个偏移量,偏移量为127,即 $E = e - 127$;m表示尾数位,采用隐含位的形式,即尾数的最高位总是1。 下面是用mips实现IEEE 754单精度点数的表示及运算功能的示例代码: ```mips # 将一个32位二进制数转换成IEEE 754单精度点数格式 # $a0:32位二进制数,$f0:单精度点数 bin2float: li $t0, 0x80000000 # 将$t0初始化为0x80000000 and $t1, $a0, $t0 # 取出符号位 srl $t2, $a0, 23 # 取出指数位 addi $t2, $t2, -127 # 计算指数的偏移量 andi $t3, $a0, 0x007fffff # 取出尾数位 ori $t3, $t3, 0x00800000 # 将尾数的最高位设置为1 sll $t4, $t2, 23 # 将指数位移动到正确的位置 or $f0, $t1, $t4 # 将符号位和指数位合并 or $f0, $f0, $t3 # 将尾数位合并 jr $ra # 将一个IEEE 754单精度点数格式的数转换成32位二进制数 # $f0:单精度点数,$v0:32位二进制数 float2bin: mfc1 $t0, $f0 # 将$f0中的单精度点数转换成32位整数 andi $t1, $t0, 0x80000000 # 取出符号位 srl $t2, $t0, 23 # 取出指数位 addi $t2, $t2, 127 # 计算指数的偏移量 andi $t3, $t0, 0x007fffff # 取出尾数位 sll $t4, $t2, 23 # 将指数位移动到正确的位置 or $v0, $t1, $t4 # 将符号位和指数位合并 or $v0, $v0, $t3 # 将尾数位合并 jr $ra # 两个IEEE 754单精度点数相加,结果存放在$f0中 # $f12:被加数,$f14:加数 add.s $f0, $f12, $f14 # 两个IEEE 754单精度点数相减,结果存放在$f0中 # $f12:被减数,$f14:减数 sub.s $f0, $f12, $f14 # 两个IEEE 754单精度点数相乘,结果存放在$f0中 # $f12:被乘数,$f14:乘数 mul.s $f0, $f12, $f14 # 两个IEEE 754单精度点数相除,结果存放在$f0中 # $f12:被除数,$f14:除数 div.s $f0, $f12, $f14 ``` 需要注意的是,在mips中,点数操作需要使用点寄存器,例如$f0、$f1等。在实现点数加减乘除的过程中,需要注意溢出和舍入的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值