gpt4 book ai didi

c - 固定点 fx 表示法和转换

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:02 26 4
gpt4 key购买 nike

我有一个 fx1.15 表示法。底层整数值为 63183(寄存器值)。

现在,根据维基百科,完整长度为 15 位。该值不适合里面,对吧?

假设它是一个 fx1.16 值,我如何将它转换为人类可读的值?

最佳答案

要将定点值转换为人类可读的值,请将 float 除以 2 除以小数位数。例如,如果有 15 个小数位,2^15 = 32768,那么您可以这样使用:

int x = <fixed-point-value-in-1.15-format>
printf("x = %g\n", x / 32768.0);

现在将定点数转换为 float 并调用 printf() 是昂贵的操作,它们通常会破坏使用定点数获得的任何性能。我认为您这样做只是为了诊断目的。

另外请注意,如果您的平台正在执行定点运算,因为浮点运算被禁止或不可用,那么您将不得不做一些不同的事情,比如手动进行十进制转换。将整数建模为基础浮点值乘以 32768,然后从那里开始。有一些有用的定点代码 here .

附注我不确定你是否仍然对这个答案感兴趣,ashirk,(我为其他人写了更多),但如果你感兴趣,欢迎来到 Stack Overflow!

关于c - 固定点 fx 表示法和转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9548761/

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