Другие языки программирования и технологии
битовые карты: так ли я понял тему, для чего вообще используются?
вот исходники: http://pastebin.com/5s2eesii
глянула.
не поняла нахрена вообще там массив mask если можно просто лепить побитовое со степенями двойки или сдвигать на нужное число разрядов (что работает много быстрее) .
Весь этот массив - попытка перевести положение единички из двоичного представления в десятеричное и потом кряхтя её там отловить.
вся сейчашняя бытовая компутерия на двоичном.
запись через побитовые сдвиги или сравнения использует арифметику по основанию "2", а не "10".
в маск использованы биты от конца значения по номеру ячейки массива. Но нахрена такое расточительство как целый массив из нулей и одной единички на конкретной позиции -непонятно
не поняла нахрена вообще там массив mask если можно просто лепить побитовое со степенями двойки или сдвигать на нужное число разрядов (что работает много быстрее) .
Весь этот массив - попытка перевести положение единички из двоичного представления в десятеричное и потом кряхтя её там отловить.
вся сейчашняя бытовая компутерия на двоичном.
запись через побитовые сдвиги или сравнения использует арифметику по основанию "2", а не "10".
в маск использованы биты от конца значения по номеру ячейки массива. Но нахрена такое расточительство как целый массив из нулей и одной единички на конкретной позиции -непонятно
Сергей Сейидов
все-таки десятичная запись смотрится приятне, чем куча нулей и единица :) по поводу сдвига, согласен, работать будет быстрее, массив из 8-ми байтов это расточительство? мы живем в 2014-м году, где гигабайт памяти стоит ~5-7 долларов :)
Сергей Сейидов
хм, вариант с массивом таки быстрее, чем со сдвигом, как я и предположил :)
Монохромное изображение, для не взвешенных графов, да и много где есть возможность хранить два состояния.
В таком виде использовать будет трудно, слишком мал размер ячейки под хранение битов. Реализация кривовата, но вроде работает.
Битовые карты используются для фильтрации больших объёмов данных по нескольким признакам (каждый из которых представлен битовой картой) . Для этого используются поэлементные битовые отрицания, сложения и умножения элементов битовых карт.
Именно по этой причине размер элементов должен быть как можно больше. Просто быстрее будет работать слияние битовых карт.
Также можно использовать для представления данных с небольшим набором параметров, например воздушный шарик - {красный, синий, зелёный, жёлтый} разбивается на 4 битовые карты.
ЗЫ
Оба предложенных варианта используются в индексах баз данных.
Углубляться не хочу, это слишком серьёзная тема.
Битовые карты используются для фильтрации больших объёмов данных по нескольким признакам (каждый из которых представлен битовой картой) . Для этого используются поэлементные битовые отрицания, сложения и умножения элементов битовых карт.
Именно по этой причине размер элементов должен быть как можно больше. Просто быстрее будет работать слияние битовых карт.
Также можно использовать для представления данных с небольшим набором параметров, например воздушный шарик - {красный, синий, зелёный, жёлтый} разбивается на 4 битовые карты.
ЗЫ
Оба предложенных варианта используются в индексах баз данных.
Углубляться не хочу, это слишком серьёзная тема.
Похожие вопросы
- C++. Битовое поле.
- Битовые операции
- Прогреи помагите с++. Для чего нужны Битовые операции. Заранее спасибо.
- Что такое «Массивы» для программирования? Для чего они используются? Мне это трудно понять.
- С точки зрения NFC reader-ов есть ли разница при использовании карты с NFC и
- Помогите с проблемой,Есть ли или существует метод-способ востоновить данные,файлы с карты памяти телефона.
- часто ли используются указатели в С++ ? в некоторых языках их вообще нет
- Что такое трехмерная, растровая и векторная графика? Где они используются?
- Почему для оптимальной настройки нейронных сетей используется алгоритм Левинсона-МакКварта, а для синтеза цифровых...
- Delphi. Обьясните подробно, что, как, и для чего нужен\используется "while" ?