powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Два число в одно и обратно
9 сообщений из 209, страница 9 из 9
Два число в одно и обратно
    #39160088
AWSVladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Avenger__Добрый вечер!

Можно ли запаковать в один Int(4-байта) два числа, первое - не превышает 9999, второе - не превышает 999999?

Читал только 1-ю страницу
Охренеть флудерасты )

9999 - 14 бит
999999 - 20бит

всего то надо 34 бита из 64
и ВОСЕМЬ!!! страниц набили программисты
...
Рейтинг: 0 / 0
Два число в одно и обратно
    #39160113
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AWSVladimir,

Топик уже давно про другое 18740263
...
Рейтинг: 0 / 0
Два число в одно и обратно
    #39160136
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, я вообще в таких случаях делаю клон топика. С пометкой дескыть - в продолжение беседы URL=.... e.t.c.
...
Рейтинг: 0 / 0
Два число в одно и обратно
    #39160174
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отрендерил в 2048х2048. Появились детали. Из характера картинки делаю гипотезы.

1) Данную картинку можно представить как суперпозицию двух других. Или
в терминологии ребят, которые работают в Фотошопах - она двуслойна.

2) Один слой содержит ярко-выраженные горизонтальные полосы. Это те что выше коллеги
пытались сжать диапазонами.

3) Второй слой - это звёздная пыль из случайных точек (номеров) которые в серии оказались
достаточно редкими. Я еще не оценивал их количество.

Возникает естественное тех-предложение переделать логику хранения исходя из пунктов (2) (3).
А именно - разделить систему хранения на 2 части. Первая часть оперирует диапазонами.
А вторая часть - отдельно стоящими номерами. Алгорим, естественым образом должен
делать lookup номера в обоих хранилищах последовательно.

Полагаю что такой подход позволит еще сильнее сэкономить даже без использования архиваторов,
применение которых в данной задаче я считаю ненужным.
...
Рейтинг: 0 / 0
Два число в одно и обратно
    #39160184
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикладываю картинку коллегам для анализа.

Дабы не сердить модератора (и без того дизайн скруля трещит по швам
от толстых картинок) я завернул ее в 7zip
...
Рейтинг: 0 / 0
Два число в одно и обратно
    #39160242
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AWSVladimir__Avenger__Добрый вечер!

Можно ли запаковать в один Int(4-байта) два числа, первое - не превышает 9999, второе - не превышает 999999?

Читал только 1-ю страницу
Охренеть флудерасты )

9999 - 14 бит
999999 - 20бит

всего то надо 34 бита из 64
и ВОСЕМЬ!!! страниц набили программисты
33 бита. расслабься
...
Рейтинг: 0 / 0
Два число в одно и обратно
    #39160702
AWSVladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилAWSVladimirвсего то надо 34 бита из 64

33 бита. расслабься
А пример, что реально можно ужать?
Только не надо словестной казуистикой заниматься, что первый бит нулевой.
Написано же 34 бита из 64
...
Рейтинг: 0 / 0
Два число в одно и обратно
    #39162938
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал парсер списка. Определяюсь с форматом хранения полного состояния.

1. Биткарты
Код: sql
1.
2.
3.
4.
5.
Заголовок
Индекс серий 8*10000 (адрес начала и конца серии)
Серия 1 биткарта (125000 байт)
Серия 2 биткарта (125000 байт)
...

2. Биткарты и списки
Код: sql
1.
2.
3.
4.
5.
Заголовок
Индекс серий 8*10000 (адрес начала и конца серии)
Серия 1 биткарта (125000 байт)
Серия 2 список (если <125000 байт)
...

3. Пожатые биткарты
Код: sql
1.
2.
3.
4.
5.
Заголовок
Индекс серий 8*10000 (адрес начала и конца серии)
Серия 1 биткарта пожатая deflate
Серия 2 биткарта пожатая deflate
...


Результат
ФорматРазмерПожатый RARБиткарты349 580 01626 950 857Биткарты+списки (4 байта на адрес)122 389 24427 368 588Биткарты+списки (3 байта на адрес)112 311 93727 307 492Биткарты пожатые26 911 70726 458 169

Плюс у смешанного формата (биткарты+списки) один: размер в непожатом состоянии
У биткарт плюсы: поиск в 2 чтения, быстрый расчет обновления (XOR двух биткарт), можно дописывать в существующий файл.
У пожатых биткарт частично плюсы биткарт, только для доступа надо сначала ее распаковать, это скорее компромисс между всеми вариантами. Средний размер одной пожатой биткарты 9305 байт.

Я почему-то склоняюсь к третьему варианту.

PS Если не устану, хочу законченную прогу написать: загрузка из csv, сохранение в своем формате, расчет обновлений, накат обновлений, скачивание обновлений с первоисточника. Исходники потом выложу (C#).
...
Рейтинг: 0 / 0
Два число в одно и обратно
    #39162978
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TPS Если не устану, хочу законченную прогу написать: загрузка из csv, сохранение в своем формате, расчет обновлений, накат обновлений, скачивание обновлений с первоисточника. Исходники потом выложу (C#).
+1

Это было-бы очень продуктивно. На архиватор я-бы предложил "забить болт". Ну тоесть
архивировать можно но решений по поводу эффективности не принимать.

Нативный формат в 100 Мб - это само посебе уже отличное решение.
...
Рейтинг: 0 / 0
9 сообщений из 209, страница 9 из 9
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Два число в одно и обратно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]