C++ union на C#
Формулировка задачи:
Каким образом это можно сделать в C#.
Необязательно,чтобы это была структура,просто может как-то проще можно?
Я просто себе уже голову "сломал"...
Заранее спасибо за любую помощь!
Мне хотя бы просто понять,что в этом коде делается.
Мои мысли:
1. Я так понимаю в union объеденяют массив cData, состоящий из двух элементов, и целочисленную переменную siData,т.е. каждому элементу массива cData присвоен int siData. 2. Вfor
первому и второму элементу cData из union uData присваивают какие-то значения из др.массива неважно какого.При этом значение siData не изменяется. 3. В каждый элемент массива SQ[] заносят значение, вычисляемое с участием int siData. Я правильно понимаю?! union
{char cData[2];
short int siData;} uData;
for (int i = 0; i < NBPF; i++)
{ uData.cData[ 0 ] = pszBuffer[2 * i +(curRealiz * NUMBER_BYTES_READ)];
uData.cData[ 1 ] = pszBuffer[2 * i +(curRealiz * NUMBER_BYTES_READ) + 1];
//используем окошко Хеннинга
SQ[i] = uData.siData * Math.Cos(M_PI * (Convert.ToDouble(i) / Convert.ToDouble(NBPF) - 0.5));
SW[i] = 0.0; //обнуляем мнимые составляющие
}Решение задачи: «C++ union на C#»
textual
Листинг программы
//...
LikeAUnion un = new LikeAUnion();
un.i32 = 55245564;
Console.WriteLine("b1 = {0}; b2 = {1}; b3 = {2}; b4 = {3}", un.b1, un.b2, un.b3, un.b4);
Console.ReadKey();
//b1 = 252; b2 = 250; b3 = 74; b4 = 3