首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在汇编中乘以2^n?

如何在汇编中乘以2^n?
EN

Stack Overflow用户
提问于 2013-02-19 19:39:41
回答 1查看 3.4K关注 0票数 1

给定两个数字,x和n,x乘以2^n的方法是什么?例如x=3.7和n=5。所以3.7×2^5= 118.4。我需要在不使用FPU命令(数学协处理器)的情况下完成此操作。

所以我认为32bt处理器中的数字是由32位表示的:第一位是符号,接下来的8 (2-9)是指数,后面的23位被称为SIGNIFICAND。

指数域是2^k中的k,所以我需要做的只是改变指数域,然后再加上n。exponent = exponent + n

那么我该如何在汇编8086中做到这一点呢?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-19 19:50:12

这里有一些相当难看的内联asm,VS风格。希望你能明白:

代码语言:javascript
运行
复制
float mul(float f, int p)
{
    __asm {
        mov eax, f
        mov ecx, p
        shl ecx, 23
        add eax, ecx
        mov f, eax
    }

    return f;
}

这显然不会检查溢出等。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14956580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档