| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Конвертер 8 бит в 7 бит и наоборот |
| Автор: Mephisto 16.4.2005, 04:56 |
| Люди, есть ли стандартные алгоритмы ковертирования 8 битной кодироки в 7 битную и наоборот. Уже мозги кипят. Может у кого есть идеи, или готовые примеры? |
| Автор: Петрович 16.4.2005, 08:02 |
| Смотря какую 7-битную кодировку ты имееш в виду. В некоторых случайх просто обнуляется старший бит. А в некоторых, используется преобразования 3-х байт в 4 (Base64,UUE,XXE,MIME,...) |
| Автор: Mephisto 5.5.2005, 00:53 | ||
Именно! Сорри, что долго не писал! |
| Автор: val 5.5.2005, 09:12 |
| Немного преобразую задачу: найти способ округления 8-ми битных величин к 7-ми. Я бы начал с экспериментов над числами и их округления. Тут всё от специфики задачи зависит... |
| Автор: Akina 5.5.2005, 10:12 | ||
нет |
| Автор: Петрович 9.5.2005, 22:30 | ||||
Я же писал. Есть. Например Base64,UUE,XXE,MIME. Если интересно, реализацию можете посмотреть и/или использовать в Indy. Или в моем модуле http://forum.sources.ru/index.php?act=Attach&type=post&id=399308. |
| Автор: Mephisto 10.5.2005, 13:01 | ||
Петрович, спасибо. То что нужно!
А можно это как-нить тут выложить, у меня нет доступа? Хотел бы посмотреть твой вариант! |
| Автор: Петрович 11.5.2005, 03:44 |
| Конечно можно. Собственно давно пора Возьми http://asysoev.nm.ru/awLib/awString.zip см. функции из раздела "Функции кодирования 3 в 4 и обратно" |
| Автор: Akina 11.5.2005, 08:53 | ||
Неправ ты. Есть 7-битные кодировки. В них стандартных алгоритмов перевода нет. Но есть стандартные процедуры конвертации в printable text - это как раз все твои алгоритмы. |
| Автор: Петрович 11.5.2005, 17:53 | ||
В таком случае, наши разногласия вызваны несогласованностью терминалогии. Насколько я понял, Mephisto интересовали именно "процедуры конвертации в printable text". Я считал что речь идет именно о кодировках позволяющих передавать бинарную информацию без использования восьмого бита в байте. Такое раньше широко исполоьзовалось по причине существования семибитных каналов связи. Восьмой бит байта использовался для контроля четности, а некоторые младшие коды (< пробела) использовались как управляющие символы (XON, XOFF, SYN, EOL, EOT, и т.п.). Поэтому, такие кодировки использовали только печатные символы. Сейчас такие каналы это редкость. Поэтому, такие преобразования сейчас обычно используются для "конвертации в printable text" (побочный эффект Хоть это уже и не в тему, но мне интересно, что ты имеешь ввиду под понятием "7-битные кодировки"? |
| Автор: Akina 11.5.2005, 18:04 | ||
Скажем, KOI-7 |
| Автор: Mephisto 14.5.2005, 00:03 | ||
Может я и не корректно выразился!!!??? Проблема вот в чём: Есть один девайсик на авто, который при определенном запросе выдает мне в порт один массивчик. Только у этого гада, как бы сказать, один байт это 7 бит а не 8. Оригинальную прогу с коннектором впадло покупать. Кучу денег стоит, да и заказывать в штатах надо. Мы с дружбаном за вечер коннектор спаяли, а с прогой нае.....сь! Вот и спрашиваю есть ли алгоритмы пошустрей? В данном моменте важна высокая скорость! |
| Автор: Akina 14.5.2005, 08:30 |
| В какой порт? СОМ? тогда просто инить СОМ-порт в 7-битный режим, и вся недолга... |
| Автор: Петрович 14.5.2005, 09:17 | ||||||
Странно. Всю жизнь считал что для KOI-7 есть таблица однозначной перекодировки из ANSI, ASCII, и пр.
Дык я не понял. Это в смысле 7-битный RS-232? Тогда как сказал Akina. Или тебе надо преобразовать сам "массивчик" во что-то осмысленное? Тогда тебе надо знать его структуру, кодировку и пр. Но, боюсь, преобразования 3->4 (Base64,UUE,XXE,MIME) тебе ни к чему. |