|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
||||||
Быстрый перевод байта в вектор битов29.07.2011, 18:42. Показов 8142. Ответов 48
Метки нет (Все метки)
Всем привет. Есть тут интересная задачка: перевести байт в вектор битов, да побыстрее.
Я реализовал это дело через таблицу. Кто знает способ лучше ?
0
|
||||||
| 29.07.2011, 18:42 | |
|
Ответы с готовыми решениями:
48
Вектор битов и машинные слова Перевод байта в знаковый формат |
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
|
||||||
| 31.07.2011, 18:54 | ||||||
|
Я бы при таком подходе вообще как-то так сделал:
0
|
||||||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 31.07.2011, 20:48 | |
|
0
|
|
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
|||||||||||
| 31.07.2011, 21:02 | |||||||||||
|
Посмотрел bitset, действительно работает медленнее. чем даже ваше старое решение.
Я думаю, если нужно самое быстрое решение, то на ум приходят следующие варианты 1) использование массивов вместо векторов и при этом создание глобального массива и сразу его инициализировать, примерно так:
это вероятно будет самый простой и быстрый вариант. Т.к. вам нужно использовать вектора, то можно использовать подобный вариант:
Ну, и третий вариант, тоже с созданием глобальной переменной, но до этого создается функция, которая все предварительно рассчитует (в случае если нет поддержки стандарта c++0x или не планируется его использовать) значение вектора и значение этой функции возвращается в глобальный вектор
0
|
|||||||||||
|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
|||
| 31.07.2011, 21:56 [ТС] | |||
|
А в данном варианте программы, который приведен у меня выше, при каждом вызове статического метода этот массив заново создается ведь? Инициализация массива в теле класса B за пределами конструктора не увенчалась успехом. Даже если использовать static const Добавлено через 48 минут
0
|
|||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
|
||
| 31.07.2011, 22:12 | ||
1
|
||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 31.07.2011, 22:29 | |
|
easybudda, все, понял
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
|
|
| 31.07.2011, 22:50 | |
|
alex_x_x, весь профит от такого подхода в том, что работать с массивом чисел даже типа long long по крайней мере в программе на С было бы легче и быстрее, чем с массивом массивов (я так понимаю - там не одно число должно обрабатываться)... Сами же числа типа unsigned long long используются просто, как массив unsigned char[8]
0
|
|
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
|||||||
| 01.08.2011, 08:25 | |||||||
|
Что-бы получить вектор, который содержит нужное значение (из 256), нужно обратиться как к массиву (используя индексацию):
Насчет c++0x: данная конструкция (вложенные вектора) может работать и в старом стандарте, а вот инициализация вектора как в массиве (с помощью фигурных скобок, а не используя тучу push_back) появилась только в стандарте c++0x
0
|
|||||||
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
||
| 01.08.2011, 11:32 | ||
|
0
|
||
|
|
||
| 01.08.2011, 14:36 | ||
|
0
|
||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||
| 01.08.2011, 15:06 | ||
|
Если рассуждать логически, то есть два варианта: 1. неявные пушбэки 2. неявный инсерт При статической инициализации деструктор вектора не правильно отработает, так что это не реально. Или в него добавлять флажок о его "статичности".
0
|
||
|
|
|||
| 01.08.2011, 15:14 | |||
|
0
|
|||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||||||||
| 01.08.2011, 15:25 | ||||||||
0
|
||||||||
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|||||||
| 01.08.2011, 15:39 | |||||||
0
|
|||||||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|||||
| 01.08.2011, 15:47 | |||||
|
Но мы же говорим не о списке инициализации, а о Статической инициализации, а это две большие разницы. Добавлено через 18 секунд
0
|
|||||
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||||
| 01.08.2011, 15:50 | ||||
|
Deviaphan, Просто я подумал, что этим
0
|
||||
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
|||||||
| 01.08.2011, 16:39 | |||||||
0
|
|||||||
|
|
||
| 01.08.2011, 16:44 | ||
|
0
|
||
| 01.08.2011, 16:44 | |
|
Чтение байта в режиме SPI 9 битов Запись битов ячейки памяти (2 байта) в обратном порядке (вставка в программе на С++) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|