Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Дельта код Элиаса(Элайеса) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ подскажите, пожалуйста, как и где скачать c++ http://www.cyberforum.ru/cpp-beginners/thread842639.html
добрый день! подскажите, пожалуйста, где скачать c++, вернее саму среду разработки (программирования) и сколько она примерно весит? заранее спасибо!
C++ Как повторно проинициализировать переменную конструктором? Создал в классе переменную и проинициализировал ее в конструкторе. class A { int var; public: A() : var(0) }; http://www.cyberforum.ru/cpp-beginners/thread842632.html
C++ Прямая задана уравнением ax+bx+c=0, a и b не равны 0
Прямая задана уравнением ax+bx+c=0, a и b не равны 0. В файле заданы коэффициенты N (N>=3) прямых. Определить, имеются ли среди этих прямых три прямые, пересекающиеся в одной точке. Использовать...
Разработать программу для создания списка слов, хранимого в текстовом файле C++
Ребят помогите срочно надо.... Разработать программу для создания списка слов, хранимого в текстовом файле. Слова в файле могут быть записаны в произвольном порядке. В окне программы должна быть...
C++ inline - функции http://www.cyberforum.ru/cpp-beginners/thread842606.html
Стоит-ли добавлять префикс inline ко всем функциям, состоящим из 1-2 строк?
C++ Списки, Стеки,Очереди (На сколько кусков распадется оставшаяся часть листа? ) Доброго всем времени суток!! Помогите написать программу: Из листа клетчатой бумаги размером М*N клеток удалили некоторые клетки. На сколько кусков распадется оставшаяся часть листа? Пример. Если... подробнее

Показать сообщение отдельно
kasoleg
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 2

Дельта код Элиаса(Элайеса) - C++

19.04.2013, 16:31. Просмотров 962. Ответов 0
Метки (Все метки)

Добрый день! Расскажите, пожалуйста, как происходит кодирование и сжатие по дельта коду Элиаса. Как происходит кодирование, примерно понятно, а на чем основано сжатие - нет.
Алгоритм кодирования числа N:
Сосчитать L — количество значащих битов в двоичном представлении числа N.
Сосчитать M — количество значащих битов в двоичном представлении числа L.
Записать M - 1 нулей и одну единицу.
Дописать L_2 — M - 1 младших битов двоичного представления числа L без старшей единицы (2^{M-1}).
Дописать N_2 — L - 1 младших битов двоичного представления числа N без старшей единицы (2^{L-1}).

Пример кодирования числа 10:

В двоичном представлении числа N = 10 = 1010_2 4 значащих бита (L = 4).
В двоичном представлении числа L = 4 = 100_2 3 значащих бита (M = 3).
Записываем M-1 = 2 нуля и одну единицу → 001.
Дописывем биты числа L без старшей единицы → 00.
Дописывем биты числа N без старшей единицы → 010.
Результат — 00100010.

Так где же здесь сжатие, если было число 1010, а стало 00100010?
Заранее благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru