共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电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 |