Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
ИзопропилMasterZivЧто там он хочет битово закодировать -- не понятно совсем понятно всё, но программировать никто не хочет Я же не прошу кодировать за меня. Я прошу показать только как кодируются самые узкие места. А если конкретно то на данный момент меня интересует битовые чтение и запись чанков произвольной длины и по произвольным адресам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 13:18 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
maytonТривиальные побитовые операции и куча скушных проверок. То есть мне что придется вручную делением с остатком пилить каждое число на биты, а потом каждый бит записывать по заданному адресу? Так что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 13:20 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
ИзопропилMasterZivЧто там он хочет битово закодировать -- не понятно совсем понятно всё, но программировать никто не хочет Ну, мне не понятно. Объясни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 13:23 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
LumixИзопропилLumix, Посмотри как устроена кодировка Base64 http://base64.sourceforge.net/b64.c Смотрю в книгу вижу фигу. Не могу найти в этом коде кусок который показывает как читаются и пишутся битовые чанки заданной длины Я тебе привёл кусочки кода для установок битов. Из них можно легко сделать нужные функции. В цикле нужные битики из последовательности проставлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 13:24 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
LumixmaytonТривиальные побитовые операции и куча скушных проверок. То есть мне что придется вручную делением с остатком пилить каждое число на биты, а потом каждый бит записывать по заданному адресу? Так что ли? Тебе нужна своя имплементация следующего (примерно). Ну... если-бы я-был тобой- ябы шкодил следующий манки-код. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 13:31 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
MasterZivЯ тебе привёл кусочки кода для установок битов. Из них можно легко сделать нужные функции. В цикле нужные битики из последовательности проставлять. В цикле битики проставлять. Это конечно жесть... Высокоуровневый язык, блин... Я так-то в шоке, что в плюсах не оказалось банального битстрима с произвольной адресацией!! Это ж надо в цикле каждое десятичное число делить на 2, чтобы получить состояние бита, а потом надо складывать каждый битик с помощью сдвига в чанку, а потом эту чанку надо сдвигом же накладывать на битбуфер, а если ещё эта чанка попадает на границу чаров, то эту операцию придется разбить на две части.... Я в шоке дорогая редакция... Чтобы прочитать кусок в середине чара, нужно обнулить границы, а потом сдвинуть кусок к началу чара, если это начало чанка и к началу чара, если это конец чанка.... Епрст, короче... maytonТебе нужна своя имплементация следующего (примерно). Ну... если-бы я-был тобой- ябы шкодил следующий манки-код. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Неее, тут какая-то низкая культура в этом примере. Результатом этой темы должна получиться одна малюсенькая функция Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 13:59 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
Широкая культрура брадт... Я тебе скреативил мега-интерфейс. Его потом можно будет в других задачах юзать. А твоя хфункция - "чугунный лапоть" есть. И посему быть ей брошеной за околицу яко мусор непотребный. А мой код - зело красен и людям дорог есть. Вот так вот, православные. Вот так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 14:09 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
LumixВ цикле битики проставлять. Это конечно жесть... Высокоуровневый язык, блин... Я так-то в шоке, что в плюсах не оказалось банального битстрима с произвольной адресацией!! Я не понял... тебе не нравится ? Иди тогда ищи компоненту нужную в VB или Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 14:30 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
LumixВ цикле битики проставлять. Это конечно жесть... Высокоуровневый язык, блин... Я так-то в шоке, что в плюсах не оказалось банального битстрима с произвольной адресацией!! Вообще-то он есть - называется vector<bool> :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 14:31 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
MasterZivLumixВ цикле битики проставлять. Это конечно жесть... Высокоуровневый язык, блин... Я так-то в шоке, что в плюсах не оказалось банального битстрима с произвольной адресацией!! Я не понял... тебе не нравится ? Иди тогда ищи компоненту нужную в VB или Delphi. Ну не то, чтобы не нравится... Просто типа увидел девочку с которой познакомился на дискотеке без косметики с помятыми волосами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 22:17 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyLumixВ цикле битики проставлять. Это конечно жесть... Высокоуровневый язык, блин... Я так-то в шоке, что в плюсах не оказалось банального битстрима с произвольной адресацией!! Вообще-то он есть - называется vector<bool> :) Это шутка или реальность? Я где-то читал, что булы на плюсах это просто шорты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 22:19 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
LumixЭто шутка или реальность? Я где-то читал, что булы на плюсах это просто шорты. - ну и гавно ваш Карузо! -ты его слышал? -нет, мне Рабинович напел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 22:25 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
LumixAnatoly Moskovskyпропущено... Вообще-то он есть - называется vector<bool> :) Это шутка или реальность? Я где-то читал, что булы на плюсах это просто шорты. Алёна Сагалаева тебе уже стучится вкотактик. Она хочет рассказать как реализован булевый вектор. На этот раз она будет в косметике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 22:29 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
LumixЭто шутка или реальность? Я где-то читал, что булы на плюсах это просто шорты. vector<bool> - не шутка, это массив битов. Именно vector + bool. Во всех остальных случаях bool это 1 байт. В новом стандарте 11 есть отдельный контейнер для битов (не помню название, легко нагуглите). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 22:30 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
maytonОна хочет рассказать как реализован булевый вектор. Ну, человек хотел "высокоуровневый" битовый контейнер - получил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 22:34 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
Другое дело что он ему нафик не нужен, как выше было указано :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 22:39 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
А = russianbolshayaa Б = russianbolshayabe и так далее нума если серьезно, нужно посмотреть как utf-8 символы колирует, и сделать примерно так же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 00:09 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
Lumix, на какие потери готовы пойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 00:16 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
ИзопропилLumix, на какие потери готовы пойти? Не понял вопрос. - - - - - - - - - - - - - - - Короче, задача решена, требуемая функция написана и отправлена в продакшн для использования. Я знаю многие наверное будут меня ругать за принятое и реализованное решение, но в итоге я стал проводить "битовую" конвертацию тупо через строку. Число конвертим в строку с ноликами и единичками и тупо конкатим. Потом в цикле из этой строки вырезаем подстроки требуемой длины и конвертим в число. Обратно точно так же через строку. Все получилось дешево и сердито. Вот посылаю в форум комплект из двух перегруженных функций на основе которых удалось замутить весь остальной алгоритм. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Из ошибок, которые были допущенные в моих рассуждениях выше такая: если у нас 26 символов в пространстве получателя, а вагончики могут быть только кратные степени двойки 2, 4, 16, 32, 64, ..., то из этого следует не что минимальный вагончик будет 32, а следует, что минимальный вагончик будет 16, т.е. 4 бита. А поскольку у нас исходное пространство 162 укладывается в минимальный вагончик 256, т.е. 8 бит, то у нас получается в два раза больше символов, чем в исходнике, а это значит, что вариант решения с битовой упаковкой никакого выигрыша в результирующем объеме не дает по сравнению с тупой таблицей замен. Единственная экономия которая тут возможна это на количестве используемых букв. То есть если у нас 162 буквы в исходнике, а в получателе у нас на каждую букву будет две буквы из пространства получателя, то это значит, что для дуо-кодирования мы можем использовать всего 13 букв, потому что 13^2 = 169, т.е. для кодирования нашего пространства можно использовать всего лишь диапазон a-n, что является ровно половиной от букв латинского алфавита, ибо всего их 26. Данное свойство открывает новые возможности, которым я надеюсь будет найдено применение в наших продуктах. Спасибо всем, кто проявил участие в этой теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 01:48 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
MasterZivЯ тебе привёл кусочки кода для установок битов. Из них можно легко сделать нужные функции. В цикле нужные битики из последовательности проставлять.можно без циклов Код: plaintext 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. 34. 35. 36. 37. 38. 39. 40. 41. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 05:34 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
LumixИз ошибок, которые были допущенные в моих рассуждениях выше такая: если у нас 26 символов в пространстве получателя, а вагончики могут быть только кратные степени двойки 2, 4, 16, 32, 64, ..., то из этого следует не что минимальный вагончик будет 32, а следует, что минимальный вагончик будет 16, т.е. 4 бита. А поскольку у нас исходное пространство 162 укладывается в минимальный вагончик 256, т.е. 8 бит, то у нас получается в два раза больше символов, чем в исходнике, а это значит, что вариант решения с битовой упаковкой никакого выигрыша в результирующем объеме не дает по сравнению с тупой таблицей замен. Дык, не побитно надо делать. Можно например 162^7=2928229434235008 уложить в 26^11=3670344486987776. То есть например 7 исходных символов укладываем в int64, а потом раскладываем на 11 латинских букв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 09:16 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
LumixAnatoly Moskovskyпропущено... Вообще-то он есть - называется vector<bool> :) Это шутка или реальность? Я где-то читал, что булы на плюсах это просто шорты. Это не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 09:45 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
Lumix, Данное свойство открывает новые возможности, которым я надеюсь будет найдено применение в наших продуктах. Интересно, что ж за продукты такие. "лабораторная работа №2", следующая версия "лабораторная работа №3" :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 09:51 |
|
||
|
Фильрованная битовая упаковка и распаковка на плюсах
|
|||
|---|---|---|---|
|
#18+
Вообще, удивительный человек. Вагончики, упаковка... Что хотел вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 09:54 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38355128&tid=2020058]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 297ms |
| total: | 560ms |

| 0 / 0 |
