gpt4 book ai didi

assembly - 可接受的 ARM Cortex-M4F 浮点立即数算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:19 25 4
gpt4 key购买 nike

ARM Cortex-M4F 处理器有一条指令可以将立即数加载到浮点寄存器中,如:

      VMOV    S0,+6.75

但是,常数的取值是有限制的,必须等于一个可以表示为+/-m x 2-n的值,其中m是16-31范围内的整数n是0-7范围内的整数。例如,上述指令有效,因为您可以在 m=27 和 n=2 的情况下得到 6.75。

我很想找到一种算法来确定一个特定的实数是否可以这样表示,如果可以,则给出相应的 m 和 n 值。

最佳答案

如果愿意,您可以通过转换为常规单精度 float ,然后检查其位来实现。您的公式可表示的所有数字也可表示为 float ,但只有部分 float 可由您的公式表示。

对于您的公式可表示的任何数字,指数保证在 -3 (16*2^-7) 和 +4 (16*2^0) 之间(含),尾数保证在除小数点后的前四位。因此,第 23-30 位(含)中包含的字节的值必须介于 124 和 131 之间(含),而位 0-18(含)必须为零。要确定 n,请从 131 中减去指数字节;要确定 m,请使用第 19-22 位(含)并加 16。

请注意,这一切都假设您首先知道数字可以存储为 float 。

关于assembly - 可接受的 ARM Cortex-M4F 浮点立即数算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40412542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com