Сжатие 6-разрядных чисел до 1-4-разрядных

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DiSe
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 30.06.2003 (Пн) 19:11

Сжатие 6-разрядных чисел до 1-4-разрядных

Сообщение DiSe » 21.07.2003 (Пн) 13:25

Может кто поможет? Мне нужно придумать алгоритм сжатия 6-разрядного числа -> 1-4-разрядное. Тем самым, можно будет сократить информацию, содержащююся в файле от 2 и более раз.
Есть какие-нибудь советы?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 21.07.2003 (Пн) 13:31

Ты хоть понимаешь вообще чего спросил-то? :shock:

"Подскажите мне как в 3 литровую банку налить 5 литров пива. Я слышал, что пива поместится больше если его наливать сразу 5 литров".

DiSe
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 30.06.2003 (Пн) 19:11

Сообщение DiSe » 21.07.2003 (Пн) 14:58

Ты считаешь, что это невозможно!? А зря! С помощью нехитрых операций "\"(целочю делю) и "mod" исходное число можно преобразовать в два других - остаток и целую часть. Обратное преобразование также легко произвести.
Мне нужны новые идеи. Есть ли они у вас?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 21.07.2003 (Пн) 15:29

Да я считаю что это невозможно. Возьми число для представления которого необходимо 2 байта (word) к примеру 61223.

И что ты будешь делать с делителями и прочим? По любому 2 байта получится.

То же самое будет если ты возьмешь предположим 10 байтовый extended (double). Ну и так далее.

Tauron
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 187
Зарегистрирован: 14.07.2002 (Вс) 17:43
Откуда: Kazakhstan

Сообщение Tauron » 21.07.2003 (Пн) 17:40

Это невозможно. N битов позваляет составить 2^N комбинаций и ни одной комбинацией больше. Так что количество информации хранимой в N битах строго ограничено этим числом и записать в 16 бит 1000000 различных комибнаций (например, цифр) НЕВОЗМОЖНО.
Трезвая голова, холодный ум и ледяное сердце.

ShadowCaster
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 24.05.2002 (Пт) 10:52

Сообщение ShadowCaster » 22.07.2003 (Вт) 1:31

Он и не имеет ввиду то, что надо сжимать любое 6-ти значное число. :roll:

Я тоже когда-то занимался этим (да и сейчас, вообще-то, занимаюсь) - вариантов приходят немалые количества, но все неэффективны (пусть сжатие и лучше RAR, но эффективны лишь в максиум 10% случаев - для всех типов файлов).

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 22.07.2003 (Вт) 10:15

RayShade писал(а):Ты хоть понимаешь вообще чего спросил-то? :shock:
"Подскажите мне как в 3 литровую банку налить 5 литров пива. Я слышал, что пива поместится больше если его наливать сразу 5 литров".


Для этого надо сначала пять литров пива до банки донести...

intShort= (lngLong And &H7FFF&) - (lngLong And &H8000&)
http://poetry.mooo.com
http://poetry.myboard.info
«Человек есть нечто, что до́лжно превзойти» (Ф. Ницше)

DiSe
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 30.06.2003 (Пн) 19:11

Сообщение DiSe » 22.07.2003 (Вт) 15:53

Да, кстати, насчёт той задачки с пивом. Она тоже имеет решение (причем не стандартное, а оригинальное). 5 литров можно выпарить, затем сжатьдо ёмкоси 3 литра, и поместить в 3- литровую банку. Вот и решение. Никакие возражения не принимаются!!

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 23.07.2003 (Ср) 12:02

Только полученное пиво при разбавлении до 5 литров, будет отличаться от исходного((((((
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 3

    TopList