С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
180 / 85 / 10
Регистрация: 13.02.2010
Сообщений: 318
1

C++ union на C#

23.03.2011, 14:36. Показов 3684. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Каким образом это можно сделать в C#.
Необязательно,чтобы это была структура,просто может как-то проще можно?
Я просто себе уже голову "сломал"...
Мне хотя бы просто понять,что в этом коде делается.
Мои мысли:
1. Я так понимаю в union объеденяют массив cData, состоящий из двух элементов, и целочисленную переменную siData,т.е. каждому элементу массива cData присвоен int siData.
2. В for первому и второму элементу cData из union uData присваивают какие-то значения из др.массива неважно какого.При этом значение siData не изменяется.
3. В каждый элемент массива SQ[] заносят значение, вычисляемое с участием int siData.
Я правильно понимаю?!
C#
1
2
3
4
5
6
7
8
9
10
            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; //обнуляем мнимые составляющие
              }
Заранее спасибо за любую помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2011, 14:36
Ответы с готовыми решениями:

C++ Union в C#
Здравствуйте! Пишу программу на C# и столкнулся с проблемой, что dll написанная на с++ и...

Подобие union в с#
Привет всем! Столкнулся с проблемой, в с# нет объединения в структур. Кто как выходит из этой...

Аналог union в C#
Всем привет. Нужно взаимодействовать с C-библиотекой. При вызове функции из этой библиотеке ей...

Существует ли аналог union из С++ в С#?
собственно вот и вопрос. А то стала задача сделать из двух byte один short. Пришлось парсить через...

3
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
23.03.2011, 15:22 2
C#
1
2
3
4
5
6
7
8
9
[StructLayout(LayoutKind.Explicit)]
struct uData
{
    [FieldOffset(0)]
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
    char[] cData;
    [FieldOffset(0)]
    short siData;
};
Непонятно в каком контексте вы будете использовать его, по сему пример не наведу.
Обычно его используют вместе с неуправляемым кодом, там где с памяти надо прочитать какие-то данные.
1
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
23.03.2011, 15:23 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        [StructLayout(LayoutKind.Explicit)]
        public struct LikeAUnion
        {
            [FieldOffset(0)]
            public int i32;
 
            [FieldOffset(0)]
            public byte b1;
            [FieldOffset(1)]
            public byte b2;
            [FieldOffset(2)]
            public byte b3;
            [FieldOffset(3)]
            public byte b4;
        }
C#
1
2
3
4
5
6
            //...
            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
1
180 / 85 / 10
Регистрация: 13.02.2010
Сообщений: 318
23.03.2011, 16:06  [ТС] 4
Большое всем спасибо!А насчёт в каком контексте - это используется в вычислениях в функции быстрого преобразования фурье.
0
23.03.2011, 16:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2011, 16:06
Помогаю со студенческими работами здесь

union как определить из какой таблице запись после UNION?
Подскажите пожалуйста! Вот например две таблице (TEBLE_1) у которой поля row_1(BIGINT) и (TABLE_2)...

Union
Здравствуйте. Нужно сортировать записи в 2х таблицах по дате. Следующий запрос все делает как...

UNION
Всем привет.Ребят как вывести средствами php результат запроса в котором применялся union?Например:...

Union
Человеки привет =) Скажите пожалуйста для чего используются union в С++?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru