|
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 11
|
|||||||||||
Нумерация битов в битовых полях31.03.2014, 16:19. Показов 4507. Ответов 20
Метки нет (Все метки)
Здравствуйте!
У меня есть битовое поле и юнион:
Типа
0
|
|||||||||||
| 31.03.2014, 16:19 | |
|
Ответы с готовыми решениями:
20
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
|||||||||||||||||||||||||||||||||||||||||||||||
| 01.04.2014, 22:00 | |||||||||||||||||||||||||||||||||||||||||||||||
Биты-то нельзя адресовать, сам же написал. Хотя, что-то мне подсазывает (приду домой - сделаю тест), что современный компилятор сделает примерно эквивалентный код при доступе через битовые поля или сдвиги.Добавлено через 5 часов 15 минут SatanaXIII, Итак. Я сделал два базовых теста. Один простой с inplace заданием битов. Первый тест Кликните здесь для просмотра всего текста
Как видно, примеры абсолютно эквивалентны. Компилятор, как и ожидается, заменил это на банальнейший код: Кликните здесь для просмотра всего текста
Собственно в этом не было сомнений. Теперь давай проэмулируем ситуацию, когда значения битов не известны заранее, чтобы заблокировать эту оптимизацию. Второй пример: Кликните здесь для просмотра всего текста
Хехе, похоже ситуация здесь не в пользу второго варианта. Ну это должно быть понятно даже без асма, ведь очевидно, что здесь компилятору придется делать сравнения: Кликните здесь для просмотра всего текста
Однако и с битовыми полями не все так приятно. Как я и говорил, бесплатно это не дается, хоть это и лучше чем второй вариант. Кстати обратите внимание, сдвиг (но только один!) есть в обоих вариантах. Но проблема второго именно в сравнениях и прыжках, а не в сдвигах. Можно избавиться от прыжков, если использовать вычисление обоих значений на каждом этапе в таблицу, а булевый флаг использовать в качестве индекса. Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Похоже этот вариант отлично ляжет в кеш процессора. Хотя вариант в битовыми полями все еще лучше. Но это еще не все. Весь-то сыр-бор затевался из-за индексированного доступа. Только ой. Во втором варианте он уже есть. Так сказать из коробки. Для правильной оценки я переписал пример так (эмулируем ситуацию с массивом с неизвестным содержанием, который надо представить в виде нашего битсета): Кликните здесь для просмотра всего текста
А здесь вот что, специально не стану убирать это под спойлер:
А вот второй вариант, видно что для индексации он гораздо лучше подходит:
PS. Опубликовано тут исключительно в образовательных целях
2
|
|||||||||||||||||||||||||||||||||||||||||||||||
| 01.04.2014, 22:00 | |
|
Помогаю со студенческими работами здесь
21
Массив 16-битовых чисел с заданным количеством единичных битов Как сделать чтобы в дополнительных полях dle 9.7 заработали BB теги как и в стандартных полях? Есть сгенерированный дайджест текстового файла методом SHA-2(256 битов). Как сделать из 256 битов 512? Обработка Битовых последовательностей Сколько битовых строк? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
|
|
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива
Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
|
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так?
Да, всё верно. Я — искусственный интеллект.
Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
|
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает.
В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше.
Перед запуском проверяем. . .
|
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов.
В Main создаём четыре события. . . .
|