gpt4 book ai didi

使用定点的复数除法

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:44 25 4
gpt4 key购买 nike

我正在编写一个 C 程序来执行定点中 2 个复数的除法。我无法从中得到小数部分。以下是有关它的更多详细信息。

我有 2 个复数:

N = a + ib
M = c + jd

我需要在定点(不使用浮点)中执行N/M

上述复数的示例值可以是:

a = 1.55, b = 1.44, c = 1.24, d = 0.55

N = 1.55 + i(1.44)
M = 1.24 + j(0.55)

为了转换为定点,我将 a、b、c 和 d 与 2^14 相乘。之后他们变成:

a = 0x6333, b = 0x5c28, c = 0x4f5c and d = 0x2333

然后执行我做的N/M操作:

N/M = (a + ib)/(c + jd) = ((a + ib) * (c - jd)) / ((c + jd) * (c - jd))

然后对于实数部分:

(ac + bd) / (c^2 + d^2)

等等..

我面临的问题是我不了解如何从除法中获取小数部分。我只得到小数部分,大部分是 1 或 0。

获取小数部分的正确方法是什么?在上面的例子中,实部应该是 1.47490。但我只能得到 1 个。

谁能帮我用正确的方法为定点进行复数除法?

非常感谢。

最佳答案

在定点除法和乘法中,必须注意结果值还必须具有比例因子 K

in addition / subtraction:
a * K + b * K = K * ( a + b)

in multiplication:

(a * K) * (b * K) = K^2 * (a * b) --> must compensate with 1/K
proper form: (aK * bK) / K

in division:

(a * K) / (b * K) = a / b --> must pre-multiply with K
proper form: (aK * K) / (bK)

关于使用定点的复数除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26924461/

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