私はC#プロジェクトで再利用しようとしているC++コードを持っています。 ここm_Bufferがフロートの配列である被写体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));
}
あります。コードのこの部分は、配列の各2つの "浮動小数点"を1つの "double"として読み込み、次にいくつかの操作を行います(シフトする、最大を選択するなど)。 質問は - どのようにC#で同じ操作を行うことができますか?
たとえば、私は配列[12,45,26,32,07,89,14,11]を持っています。位置0と1(12と45)のアイテムを変換して、新しい番号(ダブルタイプ)(私はよく分からない - 多分最低)最高の場所のビットの一部は12と低いものから形成されることになる - 45
私の理解では、ビットシフトは関与していません。 'numOfSamples'とは何ですか?どうやら、 'm_buffer'は少なくとも' numOfSamples * 4 + 1'要素の 'double'型(' double'が4バイトを使うならば)を含んでいなければなりません。 – Codor
numOfSamples - 境界のこの操作を保持するのに十分な大きさの配列の長さ –
( '*(pointer + index)'は 'pointer [index]'の代わりに反発するコードです。 – greybeard