cプログラミングでは、以下の式の変数k、X、Y、nを使用します(exp()は数学定数eを()に上げ、pi = 3.14159 .. 、およびj = sqrt(-1))、これらの変数はすべて64b倍精度浮動小数点数(Xは複素数)として宣言され、出力の結果もこのデータ型になります。私は、よりインテリジェントメモリを管理しようとする場合、c言語のデータ型算術規則
output = k * exp(2*pi*j*X*Y/n)
今、私は
K、Y、およびnは、符号なしlong int型(0〜4294967295)を32ビットすること、および
をしたいのですがpi、j、およびXは32ビット浮動小数点です。
私の質問は、結果がデータ型float(うまくいけば)かunsigned long intかどうかです。つまり、C言語には浮動小数点数と整数を乗算して結果をfloatとしてインテリジェントに処理するいくつかのデフォルトルールがありますか、またはタイプキャストなどを使って手動で管理する必要がありますか?私がこのような操作で心配する必要があるものがあるのか、それとも私がCの中に残して舞台裏ですべてを知的に行うことができるのか不思議です。
これは非常に悪い考え方です。整数を浮動小数点数と混合すると、パフォーマンスが大幅に低下します。可能であればそれを試してください。 – ruslik
なぜ複合型を使用しないのですか? – Artefacto