Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> конвертирования двоичку в текст, вопрос 
:(
    Опции темы
MulllGuN
Дата 11.12.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



В общем вопрос давольно простой.
Мне понадобился конвертор текста в двоичную систему и обратно
Предпологаю что мне нужно воспользаваца таблицой ASCII но встал ряд вопросов
1) я смотрел в нете и везде разные вариации этой таблицы. Интерестно знать, есть ли общипринятая?
т.е. таблица которая являеца стандартной.
2) и как граматно ей воспользаваца при написание программы.
и еще 1 вопрос, в принцапи не относиться к теме, в компиляторе с русским все нормально а когда программа уже готова в ней нет ни 1 русской буквы все символами....  smile 

 smile 
PM MAIL   Вверх
likehood
Дата 11.12.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: нет
Всего: 24



Цитата(MulllGuN @  11.12.2007,  22:53 Найти цитируемый пост)
Мне понадобился конвертор текста в двоичную систему и обратно

имеется в виду перевод числа, записанного в виде строки, в само число?

Цитата(MulllGuN @  11.12.2007,  22:53 Найти цитируемый пост)
и еще 1 вопрос, в принцапи не относиться к теме, в компиляторе с русским все нормально а когда программа уже готова в ней нет ни 1 русской буквы все символами....

посмотри в соседний теме (про ввод-вывод файла) как там сделали
PM MAIL   Вверх
MulllGuN
Дата 11.12.2007, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



нет, я имел в веду текст, буквы 
т.е. по таблице у каждого символа есть номер этот номер можно перевести в двоичку
и я предпологаю что бы не переписывать всю таблицу в скрипт должна быть какаенить функция
PM MAIL   Вверх
bsa
Дата 12.12.2007, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



MulllGuN, каждый символ текста - это на самом деле число (в простейшем случае от 0 до 255). поэтому тебе нужно просто последовательно читать символы из текста и переводить их в двоичную систему:
Код
#include <iostream>
std::ostream& convertToBinary(std::ostream &stream, unsigned char value)
{
     unsigned char t = 1 << (sizeof(t)*8-1);
     while(t) {
          stream << ((value & t) ? 1 : 0);
          t >>= 1;
     }
     return stream;
}

int main()
{
       const char *text = "some simple text";
       const char *p = text;
       while(*p) {
             convertToBinary(std::cout, static_cast<unsigned char>(*p)) << std::endl;
             ++p;
       }
       return 0;
}

PM   Вверх
MulllGuN
Дата 12.12.2007, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



да нет. блин не то я имел в веду.
блин если я с помащью своей программы переведу там например "привет" в двоичку
или рассказ на лист. ты представь как будет выглядеть последний символ в двоичке это байта 2-3
вот что бы такова не было я хочу задействовать  ASCII 1 символ = 1 целому байту
PM MAIL   Вверх
Greeen
Дата 12.12.2007, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



MulllGuN, ничего не понятно. Если будешь использовать ASCII, то вариант bsa все правильно сделает.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
MulllGuN
Дата 12.12.2007, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



а что отвечает за ASCII ? и за перевод из двоички в символ по этой таблице и обратно?
PM MAIL   Вверх
bsa
Дата 12.12.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



MulllGuN, ты не понял. ASCII - это соответствие символов кодам. Она используется теми, кто шрифты делает или перекодировщики из одной кодировки в другую. В твоем случае, не нужно ничего никуда перекодировать. Просто переводишь каждый код, задающий символ, в двоичную систему и все.
PM   Вверх
MulllGuN
Дата 18.12.2007, 02:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



блин я обьясняю, что в этом случаи большые тексты будет сложно переводить в двоичку, вернее не сложнее а что 1 символ будет под конец занимать два байта а мне нужен 1 символ 1 байит при любом раскладе. по этому я и хочу воспользаваца таблицой

Добавлено через 1 минуту и 41 секунду
так видимо я реально ни чего не понял. обьясните плз "на пальцах"
PM MAIL   Вверх
nickless
Дата 19.12.2007, 01:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 2
Всего: 181



Цитата(MulllGuN @  18.12.2007,  00:47 Найти цитируемый пост)
1 символ будет под конец занимать два байта 

Почему ты так считаешь?

Цитата(MulllGuN @  18.12.2007,  00:47 Найти цитируемый пост)
обьясните плз "на пальцах" 

Объясняю, букв нет есть цифры, компьютер ничего другого не понимает. Вот этот текст - набор цифр, просто программы интерпретируют их по другому и показывает тебе картинки, которые мы называем буквами. Как это происходит зависит от кодировки, их много, стандартной нет, ASCII например поддерживает только английские буквы, цифры и некоторые знаки.
Поэтому сначала надо определится зачем тебе понадобилось "переводить" текст в "двоичку" и что это значит. По сути тебе нужно интерпретировать цифры как тебе надо, например записать их в виде десятичных цифр.

Пример разной интерпретации одного и того же текста:
Код

#include <iostream>

int main()
{
    char str[] = "matrix has you";

    int i = 0;
    while (str[i])
    {
        // interpret chars as chars
        std::cout << "\"" << str[i] << "\" ";
        i++;
    }
    std::cout << std::endl;

    i = 0;
    while (str[i])
    {
        // interpret chars as unsigned numbers
        std::cout << "\"" << static_cast<unsigned int>(str[i]) << "\" ";
        i++;
    }
    std::cout << std::endl;

    return 0;
}


Вывод
Код
% ./main                                                                                                                  /tmp/bla [23:36:42]
"m" "a" "t" "r" "i" "x" " " "h" "a" "s" " " "y" "o" "u"
"109" "97" "116" "114" "105" "120" "32" "104" "97" "115" "32" "121" "111" "117"
"6d" "61" "74" "72" "69" "78" "20" "68" "61" "73" "20" "79" "6f" "75"
"01101101" "01100001" "01110100" "01110010" "01101001" "01111000" "00100000" "01101000" "01100001" "01110011" "00100000" "01111001" "01101111" "01110101"


Добавлено через 1 минуту
Кстати символ может занимать до 4-х байт, это тоже зависит от кодировки, но обычно 1.


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
MulllGuN
Дата 21.12.2007, 03:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



ммм... ладно попытаюсь по подробней обьяснить...
есть сайт который конвертирует двоичку в текст и обратно 
(вот он http://it-static.pl/index.php?q=bin2txt)
я хочу сделать тоже самое но на с++, не в сети а как обычную программу. Я просто думаю что он использавал общеизвестную таблицу символов. я тоже хотел бы ее применить для своей проги. думаю так болие ясней чего я хочу...
PM MAIL   Вверх
bsa
Дата 22.12.2007, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



MulllGuN, твой сайт ругается по польски.
Приведи лучше несколько примеров работы - что на входе, что на выходе.
Может тебе нужно что-то вроде UUencode - кодирование двоичных данных (т.е. не текстовых) в допустимый для ASCII набор символов?
PM   Вверх
MulllGuN
Дата 23.12.2007, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



Цитата

Может тебе нужно что-то вроде UUencode - кодирование двоичных данных (т.е. не текстовых) в допустимый для ASCII набор символов?

скорее всего
Цитата

Приведи лучше несколько примеров работы - что на входе, что на выходе

примеров работы нет.
могу обьяснить как это рабоатать должно

я пишу текс в программу. программа переводит в двоичку.
я этот текст отсылаю человеку. человек беред этот текст и переводит на нормальный человечески язык. (не при помащью моей программы)
PM MAIL   Вверх
nickless
Дата 23.12.2007, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 2
Всего: 181



Цитата(MulllGuN @  21.12.2007,  01:31 Найти цитируемый пост)
есть сайт который конвертирует двоичку в текст и обратно 

Кое как нашел конвертер на том сайте, ничего сверхестественного он не делает, просто конвертирует буквы в числа. Напиши там "matrix has you" и сравни с тем, что выводит мой пример.

Цитата(MulllGuN @  22.12.2007,  23:52 Найти цитируемый пост)
я пишу текс в программу. программа переводит в двоичку.
я этот текст отсылаю человеку. человек беред этот текст и переводит на нормальный человечески язык

Интересно, а зачем?


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
MulllGuN
Дата 23.12.2007, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 11.12.2007

Репутация: нет
Всего: нет



Цитата

Кое как нашел конвертер на том сайте, ничего сверхестественного он не делает, просто конвертирует буквы в числа. Напиши там "matrix has you" и сравни с тем, что выводит мой пример.

хорошо.... только я не совсем понял алгоритм действий... вернее понял но по конкретней пожалуйста.
вот как нам перевести символ "А" в двоичку... что мы используем?
Цитата

Интересно, а зачем?

кхм... эт немного личное) но все же... подруга программист... и хотелось бы ей новогодию открытку таким вот образом написать) попросить сделать когота или воспользаваца уже готовой программой не то, хочу еще понять самому как это делаеться) я надеюсь это ни чего не изменит)

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0552 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.