我有一个 C++ 代码,我想在我的 C# 项目中重用它,我需要一些帮助。 这是主题
for (int i = 0; i < numOfSamples; i++)
{
*(((double*)m_Buffer) + i)
= max(*(((double*)m_Buffer) + i*4), *(((double*)m_Buffer) + i*4 + 1));
}
其中 m_Buffer 是 float 组。这部分代码将数组的每 2 个“ float ”读取为一个“ double ”,然后进行一些操作(移动它,选择最大值等) 问题是 - 如何在 C# 中执行相同的操作。
例如,我有一个数组 [12,45,26,32,07,89,14,11],我必须转换位置 0 和 1(12 和 45)的项目,这样我才能得到一个新的数字( double 类型)最高(我不确定 - 可能是最低)部分位将由 12 和最低 - 从 45 组成
最佳答案
应该是这样的:
for (int i = 0; i < numOfSamples; i++)
{
m_Buffer[i] = Math.Max(m_Buffer[i * 4], m_Buffer[i * 4 + 1]);
}
其中 m_Buffer
必须是至少包含 numOfSamples * 4 + 1
个元素的数组。
关于c# - 将数组操作从 C++ 重写为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36349842/