共2条
1/1 1 跳转至页
这么多高手没人知道用汇编做小数运算吗?
问
这么多高手没人知道用汇编做小数运算吗?如果有哪位知道还请赐教啊!给点指点,多谢了!QQ:35198900,juanhao_0517@163.com
答 1:
什么态度?第一次见到你这样请教别人问题的“牛叉叉”学生……
你想做什么样的小数运算?一般把它当成整数值运算就可以了,运算完了和整数部分重新组合就完结了。
如果你有特殊的要求,下次问的时候说清楚了,你留的QQ什么的就收起来把,估计没人对那些感兴趣。 答 2: 汇编见小数就头晕...剩点力气吧...用汇编主要是在关键的硬件实时控制方面,运算非汇编之本能... 答 3: 我做过的做过小数除法,双字除以双字,字除以字,有16bit小数输出的。不过现在我自己都看不懂了。 答 4: 小数/整数,在乎你怎么看。不过确实很容易糊涂的啦。 答 5: 谢谢yewuyi哈哈!终于有人回答我的问题啦,不用激将法还是不行啊!yewuyi,你好!别介意啊!首先谢谢你的耐心!如果方便的话发个例子给我好吗?谢谢啦! 答 6: 我用汇编一般将小数变为"定点数"假如3/10V
我就3*1000/10=300mV 如果非要显示出来,就在前人为地加0.XXX,这取决与显示的位数和所需精度...即最后再人为地决定小数点的位置...(实为显示位置)
不过,最好能将分母"变为"2的n次幂,及X/(2**n),这样只需左右移位来代替乘除... 答 7: 用汇编浮点数实现,除了慢点外,应该行呀 答 8: 牛人是可以不用小数的 答 9: 用C写再看看他的汇编代码 ^_^ 答 10: 大体如此hotpower说的最在理,很多时候即使分母不是2的n次幂也可以通过移位完成,猜测你的要求可能就是一些简单的小数运算和小数显示,用汇编稍麻烦一点,不过耐心折腾两下也能搞定,方法就是HOTPOWER老先生第二次说的那样了,我不知道别人是怎么搞的,反正我是这么搞的,今天又发现HOTPOWER也是如此搞的……
哈哈,是不是还有人也是如此搞的……
hotpower终于又露面了啊,呵呵,在PIC坛子里面你好象说过要搞个例程让我学习学习的嘛,让我等了老久也没看到啊,呵呵,我记性可是贼好贼好的。 答 11: 汇编写小数其实也不复杂.看一下 ANIS C 对 4字节 float 的定义
float格式数据长32 bits,最高位为符号位:0为正,1为负;紧接着的8位为阶码:为了便于比较大小,其固定偏移7FH长,即0实际表示-7FH,7FH实际表示0,0FFH实际表示80H;余下的低23位为尾数(有效数字)
举例 float * float 运算
符号位 = 符号位1 * 符号位2
8位阶码 = 阶码1 + 阶码2
23位尾数 = 尾数1 * 尾数 2
以上运算就跟整数一样算.
你想做什么样的小数运算?一般把它当成整数值运算就可以了,运算完了和整数部分重新组合就完结了。
如果你有特殊的要求,下次问的时候说清楚了,你留的QQ什么的就收起来把,估计没人对那些感兴趣。 答 2: 汇编见小数就头晕...剩点力气吧...用汇编主要是在关键的硬件实时控制方面,运算非汇编之本能... 答 3: 我做过的做过小数除法,双字除以双字,字除以字,有16bit小数输出的。不过现在我自己都看不懂了。 答 4: 小数/整数,在乎你怎么看。不过确实很容易糊涂的啦。 答 5: 谢谢yewuyi哈哈!终于有人回答我的问题啦,不用激将法还是不行啊!yewuyi,你好!别介意啊!首先谢谢你的耐心!如果方便的话发个例子给我好吗?谢谢啦! 答 6: 我用汇编一般将小数变为"定点数"假如3/10V
我就3*1000/10=300mV 如果非要显示出来,就在前人为地加0.XXX,这取决与显示的位数和所需精度...即最后再人为地决定小数点的位置...(实为显示位置)
不过,最好能将分母"变为"2的n次幂,及X/(2**n),这样只需左右移位来代替乘除... 答 7: 用汇编浮点数实现,除了慢点外,应该行呀 答 8: 牛人是可以不用小数的 答 9: 用C写再看看他的汇编代码 ^_^ 答 10: 大体如此hotpower说的最在理,很多时候即使分母不是2的n次幂也可以通过移位完成,猜测你的要求可能就是一些简单的小数运算和小数显示,用汇编稍麻烦一点,不过耐心折腾两下也能搞定,方法就是HOTPOWER老先生第二次说的那样了,我不知道别人是怎么搞的,反正我是这么搞的,今天又发现HOTPOWER也是如此搞的……
哈哈,是不是还有人也是如此搞的……
hotpower终于又露面了啊,呵呵,在PIC坛子里面你好象说过要搞个例程让我学习学习的嘛,让我等了老久也没看到啊,呵呵,我记性可是贼好贼好的。 答 11: 汇编写小数其实也不复杂.看一下 ANIS C 对 4字节 float 的定义
float格式数据长32 bits,最高位为符号位:0为正,1为负;紧接着的8位为阶码:为了便于比较大小,其固定偏移7FH长,即0实际表示-7FH,7FH实际表示0,0FFH实际表示80H;余下的低23位为尾数(有效数字)
举例 float * float 运算
符号位 = 符号位1 * 符号位2
8位阶码 = 阶码1 + 阶码2
23位尾数 = 尾数1 * 尾数 2
以上运算就跟整数一样算.
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |