Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123

Почему тормозит BitArray

12.11.2015, 11:39. Показов 874. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос и в том, почему может тормозить BitArray, и в том, как же это лучше исправить. Прилагаю анализ временных затрат и соответствующий рисунку кусочек кода.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 ////////////////Генерация М-последовательности для любого информационного бита////////////////
        BitArray Mcode()
        {
            bool[] x = { false, false, false, false, false, false, false, true, false, true, false, true, false, false, true }; // начальная комбинация
            BitArray Mcod = new BitArray (1800);
            for (int ii = 0; ii < 1800; ii++)
            {
                Mcod[ii] = x[14];
                bool buf = x[13] ^ x[14];                     //Циклический сдвиг на 1 бит вправо
                for (int i = 14; i > 0; i--) { x[i] = x[i - 1]; }
                x[0] = buf;
            }
            return Mcod;
        }
 
        ///////////////////////////////////////Скремблер////////////////////////////////////////////
        string scrambler(string X)
        {
        BitArray Mcod = new BitArray(1800); string Y = "";
            for (int i = 0; i < X.Length; i++)
            {
                Mcod = Mcode();
                int bin_mes_cur1 = int.Parse(X[i].ToString());
                bool bin_mes_cur = Convert.ToBoolean(bin_mes_cur1);
                bool Mcod_cur = Mcod[i];
                bool Bsc_cur1 = bin_mes_cur ^ Mcod_cur;
                int Bsc_cur = Convert.ToInt16(Bsc_cur1);
                Y += Bsc_cur.ToString();
                list.Add(i, X[i]);
                listSC.Add(i, Bsc_cur);
            }
            return Y;
        }
Миниатюры
Почему тормозит BitArray  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2015, 11:39
Ответы с готовыми решениями:

Почему-то тормозит компьютерная графика
вот написал код, но почему-то тормозит. Можете, пожалуйста, объяснить почему и показать способы решения этой проблемы using System; ...

Модернизация класса BitArray
Доброго времени суток. Кто работал с битовыми массивами, тот знает что такое етот клас и то что он не поддерживает наследование. Если...

Велосипед для BitArray
Собственно, как реализовать класс, подобный BitArray? Побитовый сдвиг или булеаны? Например, класс Bits – битовый массив произвольной...

3
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.11.2015, 10:42
Цитата Сообщение от lennen Посмотреть сообщение
почему может тормозить BitArray
Перед тем, как говорить о тормозах, надо бы сначала указать требования к производительности.
Без требований понятие "тормозит" не имеет смысла.

Приложенный вами скриншот говорит лишь о том, что сеттер BitArray вызывается чаще остальных методов, что нормально, т.к. к нему идет обращение во вложенном цикле.
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
13.11.2015, 11:46  [ТС]
Точно! А почему нельзя использовать просто bool[]? Я вот не понимаю, зачем bitArray, когда есть bool[]?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.11.2015, 11:59
Цитата Сообщение от lennen Посмотреть сообщение
А почему нельзя использовать просто bool[]? Я вот не понимаю, зачем bitArray, когда есть bool[]?
Если вас не интересует более экономичный расход памяти, возможности производить логические операции над всем массивом и возможность сконвертировать его в массив байт, то пользуйтесь массивом bool на здоровье — никто же не запрещает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2015, 11:59
Помогаю со студенческими работами здесь

Функция конвертации из Bitarray в Uint
Здравствуйте! Хотел бы попросить помощи в создании функции, которая конвертирует массив Бит в 4 байтное число, т.е. из Bitarray в Uint. ...

Не могу записать BitArray в файл
Имеется string строка cod, в которой сначала идет сто нулей, а потом 39 раз повторяется комбинация &quot;100&quot; Вроде эта строка...

Преобразовать BitArray в одно 64-битное значение
Приветствую всех! Прочитал на Хабре статью про сравнение изображений, кому интересно, вот ссылка Выглядит похоже. Как работает...

Как найти битовую сигнатуру в BitArray?
Друзья, добрый день! Есть последовательность &quot;битов&quot; в BitArray (берется из файла &gt;100M) И есть набор сигнатур, они могут быть...

Как инициализировать BitArray размером более 32int
Вот такая проблема, необходим массив битов размером n =128 * 10^9 , в идеале. Но .NET предлагает только BitArray(Int32). Может...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru