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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> int to binary - как конвертировать в бинарный? Из int в бинарный. 
V
    Опции темы
DragoonFighter
Дата 2.2.2009, 23:10 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mes @ 31.1.2009,  19:32)
Цитата(xvr @  31.1.2009,  18:14 Найти цитируемый пост)
Оно символы не КОДИРУЕТ

Поправка : Кодирует, но не шифрует.   smile 
DragoonFighter, а простое кодирование и шифрование прменяются совсем для разных целей. 
В  контексте Ваших постов речь шла о шифровании, и предлагаемые методы кодирования для этого не предназначены.

Да, вы правы, ну короче я даже не так уж и далеко зашёл чтобы применять base64. Вот моя программа, для тех кто интересуется. 
(Она не полная, это ещё только половина программы. )

Я закинул на ссылку код, а то тут он слишком большой. 
main.cpp

Можете скопировать и компилировать, уведите что я имею в виду. 
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
cutwater
Дата 2.2.2009, 23:15 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

Добавлено через 1 минуту и 36 секунд
При чем это только еще половина.


--------------------
user posted image
PM MAIL   Вверх
xvr
Дата 2.2.2009, 23:19 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(DragoonFighter @ 2.2.2009,  23:10)
Да, вы правы, ну короче я даже не так уж и далеко зашёл чтобы применять base64. Вот моя программа, для тех кто интересуется. 

Я закинул на ссылку код, а то тут он слишком большой. 
main.cpp

Да уж  smile 
Во первых, рекомендую слово 'crypt' оттуда убрать - ибо это не 'crypt' ни в каком смысле. 
Во вторых, у вас китайцев в роду не было? Уж очень стиль похож, хуже только 'индийский'.
В третьих, что получилось - понятно (кошмар на улице вязов), а вот что нужно было получить - совершенно не ясно  smile 
Цитата

(Она не полная, это ещё только половина программы. )
Половины вполне достаточно  smile 
PM MAIL   Вверх
pan2004
Дата 2.2.2009, 23:24 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ужас... два ифа на полсотни вариантов чего стоят... Причем, это последовательность if оф, а даже не if...else!!! Да, да, программа будет проверять все полсотни условий в цикле, даже когда один уже сработал и больше не нужно. Уже не говоря о том, что ВСЕ ифы можно просто выкинуть и написать без них.
Аффтар, ознакомься хотя бы с тем, как строки и символы представляются в памяти компьютера? Правильно, числами.


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
mes
Дата 2.2.2009, 23:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



DragoonFighter, вот переписал часть Вашего кода на скорую руку - кодирование символов на основе таблице
заполнять таблицу до конца конечно же я не стал и оставил Вам для разминки.
Код


const std::string mtbl[][2] = { "a","00"
                               ,"b","01"
                               ,"c","02"
                               ,"d","03"
                               ,"e","04"
                              };


std::string code (std::string src)
{
    std::string res;
    res.reserve(src.size()*2);
    for (unsigned j = 0; j<src.size(); ++j )
    for (unsigned i=0; i<sizeof(mtbl)/sizeof(char*)/2; ++i)
    if (src.compare(j,1, mtbl[i][0])==0) { res +=mtbl[i][1]; break; }
    return res;
}
std::string encode (std::string src)
{
    std::string res;
    res.reserve(src.size()/2);
    for (unsigned j = 0; j<src.size(); j+=2 )
    for (unsigned i=0; i<sizeof(mtbl)/sizeof(char*)/2; ++i)
    if (src.compare(j,2, mtbl[i][1])==0) { res +=mtbl[i][0]; break; }
    return res;
}

int main()
{
    std::string str = code ("abcde");
    std::cout <<str<< std::endl;
    std::cout << encode(str)<< std::endl;

    return 0;
}

заполняйте таблицу тестируйте и улучшайте  smile 

Это сообщение отредактировал(а) mes - 2.2.2009, 23:51


--------------------
PM MAIL WWW   Вверх
DragoonFighter
Дата 2.2.2009, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(pan2004 @ 2.2.2009,  23:24)
ужас... два ифа на полсотни вариантов чего стоят... Причем, это последовательность if оф, а даже не if...else!!! Да, да, программа будет проверять все полсотни условий в цикле, даже когда один уже сработал и больше не нужно. Уже не говоря о том, что ВСЕ ифы можно просто выкинуть и написать без них.
Аффтар, ознакомься хотя бы с тем, как строки и символы представляются в памяти компьютера? Правильно, числами.

Цитата

... что ВСЕ ифы можно просто выкинуть и написать без них.


А по подробнее можно? 

Извините меня, но я ещё новичок и это первый вариант который пришёл мне в голову.

Да код очень длинный, но честно говоря я пока и не думал как, и вообще что его можно написать по другому. 
Может кто объяснить в чём моя ошибка и из за чего всё так плохо выглядит? 
За раннее спасибо.

Добавлено через 4 минуты и 58 секунд
Цитата(mes @ 2.2.2009,  23:51)
DragoonFighter, вот переписал часть Вашего кода на скорую руку - кодирование символов на основе таблице
заполнять таблицу до конца конечно же я не стал и оставил Вам для разминки.
Код


const std::string mtbl[][2] = { "a","00"
                               ,"b","01"
                               ,"c","02"
                               ,"d","03"
                               ,"e","04"
                              };


std::string code (std::string src)
{
    std::string res;
    res.reserve(src.size()*2);
    for (unsigned j = 0; j<src.size(); ++j )
    for (unsigned i=0; i<sizeof(mtbl)/sizeof(char*)/2; ++i)
    if (src.compare(j,1, mtbl[i][0])==0) { res +=mtbl[i][1]; break; }
    return res;
}
std::string encode (std::string src)
{
    std::string res;
    res.reserve(src.size()/2);
    for (unsigned j = 0; j<src.size(); j+=2 )
    for (unsigned i=0; i<sizeof(mtbl)/sizeof(char*)/2; ++i)
    if (src.compare(j,2, mtbl[i][1])==0) { res +=mtbl[i][0]; break; }
    return res;
}

int main()
{
    std::string str = code ("abcde");
    std::cout <<str<< std::endl;
    std::cout << encode(str)<< std::endl;

    return 0;
}

заполняйте таблицу тестируйте и улучшайте  smile

А, вот теперь я понял в чём была проблема. 
Я вам очень благодарен! Спасибо! На первый вид я ещё не совсем понял как всё работает, но посижу пару часиков и про анализирую. Большое спасибо!
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
mes
Дата 3.2.2009, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(pan2004 @  2.2.2009,  22:24 Найти цитируемый пост)
Аффтар, ознакомься хотя бы с тем, как строки и символы представляются в памяти компьютера

Цитата(DragoonFighter @  2.2.2009,  22:52 Найти цитируемый пост)
Может кто объяснить в чём моя ошибка и из за чего всё так плохо выглядит

ну вот Вам еще один кодик из двух строчек на рамышление :

Код

    for (char i=' '; i<'z'; ++i)
    std::cout << (char)i << " " << (int) i << std::endl;
 
ответьте себе на вопрос как работает цикл л с буквами,
откуда берутся цифры в консоли, 
как они соответствуют буквам напротив их.

желаю приятных эксперементов  smile

Добавлено через 2 минуты и 48 секунд
Цитата(DragoonFighter @  2.2.2009,  22:52 Найти цитируемый пост)
А, вот теперь я понял в чём была проблема. 

на строчки   res.reserve(...); не отвлекайся, можешь их вобще закоментировать , на результат не скажется..
а описание compare здесь : http://www.cplusplus.com/reference/string/...ng/compare.html

Это сообщение отредактировал(а) mes - 3.2.2009, 00:02


--------------------
PM MAIL WWW   Вверх
DragoonFighter
Дата 3.2.2009, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Благодарю mes!
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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