![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
DragoonFighter |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Здравствуйте Программисты,
мне нужно скажем int=123; преобразовать в бинарный код. Я искал в гоогле и нашёл очень хорошую и рабочую функцию:
Всё работает прекрасно! Но есть одна проблема. Этот бинарный код мне нужно преоброзовать снова в int. То есть: ввод 123 вывод 1111011 и это число записывается в int. Как это сделать в самом void я знаю, но мне нужно создать этот int в main а так как я незнаю и не могу не где найти как вытащить int из void и засунуть его в int в main, мне нужна функция которая полностью работает в main. Я ну думаю что это можно сделать с while() поскольку я пробовал всё что мог и не чего не вышло, но если это возможно, то прошу пожалуйста пример с whiel(). За ранние спасибо! Надеюсь я не очень плохо выразился? --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
|||
|
||||
destrd |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 1.10.2008 Репутация: нет Всего: 4 |
Ну переведите в строку, а потом типа atoi с основанием 10
--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems. -- Jamie Zawinski in comp.lang.emacs |
|||
|
||||
DragoonFighter |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Это как? Можно пример? --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
бгг тема
учите системы счисления и не задавайте глупых вопросов %) Добавлено через 52 секунды а код в 1м посте однозначно жжот))) |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
вывод целочисленного числа числа в двоичной системе:
ну а в остальном не хочется Вас разочаровывать, но правда дороже ![]() Это сообщение отредактировал(а) mes - 27.1.2009, 23:06 |
|||
|
||||
DragoonFighter |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Вот, как рас то что искал. Благодарю! А можно изменить общую длину так, чтобы так много нулей не было. То есть чтобы длинна вывода зависела от полной длинны ввода. Например: int 10: вывод: 010100000000000000000000000000000 чтобы вывод был: 0101 а если int = 9876543210 то чтобы вывод был не: 010111100000000000000000000000000 а: 0101111 --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
||||
|
|||||
xvr |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Угу, только задом-наперед ![]()
|
||||||
|
|||||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
точно ![]()
пример содержит ошибку.. исправление смотрите ниже.. Это сообщение отредактировал(а) mes - 28.1.2009, 23:47 |
||||
|
|||||
DragoonFighter |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Да, я уже переделал задом на перёд, но всё равно спасибо! Добавлено @ 19:14 Класс благодарю! Спасибо вам за помощь! Мне надо было использовать sizeof(). Огромное спасибо! Один вопрос: зачем cout << "0"; и cout << "b"; ? Это сообщение отредактировал(а) DragoonFighter - 28.1.2009, 19:51 --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
||||||||
|
|||||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
закомментируй, посмотри на результат, и сравни с некомментированным результатом ![]() |
|||
|
||||
DragoonFighter |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Теоретически я могу убрать "b"? А ноль просто для начального старта или как? Кратко: Можно их убрать, чтобы были просто буквы и только бинарный код, или? Добавлено через 1 минуту и 4 секунды Так, мне ещё 3 поста и я могу репутацию ставить. ![]() --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
да, "b" поставлен для "красоты". во первых во вторых :вначале идет поиск значимого бита и с него начинается вывод, и если значащий бит не найден (при n==0) то выводить нечего и следовательно этот ноль является "опорным"
не понял о чем речь. |
|||
|
||||
DragoonFighter |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
![]() Ну а насчёт краткого: Имел в виду чтобы были только цифры. Благодарю mes! Выручили! --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
|||
|
||||
mes |
|
||||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
из за второй причины, необязатльно чтоб ноль выводился впереди всегда . можно например дополнить код условием, тогда :
a я чуть голову не поломал : ![]() ![]() Это сообщение отредактировал(а) mes - 28.1.2009, 22:13 |
||||||||
|
|||||||||
DragoonFighter |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
![]() ![]() Да я так и сделаем с условием. Благодарю ещё раз! Вопрос полностью решён! --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
приведенный выше код содержит ошибку
![]() вот исправленный вариант :
Это сообщение отредактировал(а) mes - 28.1.2009, 23:28 |
|||
|
||||
DragoonFighter |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
![]()
Вот так выглядит вся прога. Теоретически, не токая уж и важная ошибка.... А интересно, сколько цифр можно запихать в int? Я раньше в книге читал что оно не большое, то есть ограничено. Но забыл на сколько, мне нужно где то около 1 миллиарда цифр. --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
||||||
|
|||||||
pan2004 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 2 Всего: 9 |
32 двоичных разряда, обычно. Это примерно 10^9 1 миллиард десятичных цифр? Это уже если не на гигабайты, то на сотни мегабайт ОЗУ точно. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
у меня в глазах двоится или в коде действительно цикл вложен сам в себя ?? ![]() а также зачем int b; ? Добавлено через 2 минуты и 53 секунды
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
я думаю имелось ввиду, что нужна возможность вместить значение миллиард. http://www.cplusplus.com/reference/clibrary/climits/ |
|||
|
||||
DragoonFighter |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Я пишу программку, которая весь текст, то есть всё что вводят превращает в цифры, в бинарный код, потом сокращает в буквы, в hex и снова в бинарный. Так можно например кодировать файлы, e-mail, текст чата, итд. При этом засуну эту функцию в программу которая создаёт пароль. Мне нужен пароль на 200gb его на жесткий диск и этим паролем я закрою мои приватные данные. Эта идея была взята с радио активной станции в России. Там закодировали один важный файл несколькими терабайтам длинным паролем. Это причина почему я хотел знать сколько вмещается в int. А так конвертирование в бинарный код мне нужно для кодирование текста для типа приватного чата, чтобы если на пример мусара перехватят канал, чтобы им хрен что от моего текста понятно было. Ну, что то типа того. Добавлено через 2 минуты и 52 секунды
Ай тфу блин, всё вместе ляпнул... не, извините, сплю уже, ![]() b не нужно, и да ваш правильный код тот что и у меня. ![]() Добавлено через 6 минут и 45 секунд
Ну предётся сделать while() чтобы ULONG_MAX Maximum value for an object of type unsigned long int 4294967295 был умножен столько раз, чтобы вышло минимум 1 миллион. Ну это так, просто для любопытства и интереса испробовать ![]() Нечего серьёзного. --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
||||||||
|
|||||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
нда.. может лучше почитать вначале книжки, тогда возможно эти наполеновские планы превратятся в реальные цели. ![]() любое число или буква уже и так хранится в двоичном виде, а то что std::cout выводит число в десятичном виде или как букву, так это проявление работы функции, которая выводит переменную в удобном для пользователя виде. остальное комментировать не вижу смысла на текущем этапе. Это сообщение отредактировал(а) mes - 29.1.2009, 00:24 |
|||
|
||||
DragoonFighter |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Да, это понятно, но я перевожу буквы в свои цифры. У меня в принципе всё для кодирования готово! Просто осталось создать чат, но этим займёмся позже, потому что вы правы, для начала надо читать книги! Ну, пока у меня только одна проблема была, переделать числа в бинарный. Теперь всё пока идёт дальше по тихонько. Да и вообще это всё я пробую новые функции которые я изучаю. Скажем во попалась sizeof() сразу делаю с ней пример. Ну вот такой пример и в голову попал пере конвертировать цифры в бинарный. Короче всё для знания и изучения нового. Огромное спасибо вам! --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
DragoonFighter, для шифрования данных можно использовать openssl (это библиотека такая), с ее помощью организуются шифрованные каналы связи (HTTPS, SSH, TLS) в большинстве открытых приложений. А для кодирования/декодирования ключа, можно воспользоваться банальной побитовой ксоркой (XOR - исключающие "ИЛИ") ключа с хэшем (MD5, SHA1 и т.п.) пароля, так как: A xor B = C; C xor A = B; C xor B = A
А вот зачем тебе переводить в двичную, чтобы перевести в 16-тиричную, чтобы перевести в двоичную, совсем непонятно. Может тебе нужно какое-нибудь кодирование base64? |
|||
|
||||
DragoonFighter |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Хорошая информация! Благодарю! Насчёт перевода, это просто своё кодирование, просто для изучения и пробы. Просто чем больше разных переводов, на пример с букв в инт с инта в бинах с бинар в хекс и сного в бинар и т.д. К стате base64 я уже тоже использовал но поскольку тут только 64 (0-63) символов, я создал свой, 90 символов. Просто буквы в цифры, потом эти цифры с помощью например бинарного и хекса закодировать. --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
и все таки мне кажется, что Вы неправильно "воспринимаете происходящее". |
||||
|
|||||
cutwater |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 2 Всего: 10 |
DragoonFighter, я согласен с mes, Вы что-то явно путаете.
|
|||
|
||||
DragoonFighter |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Ну, как я понял base64 кодирует символы.
То есть на пример 123 = MTIz Правильно? --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Оно символы не КОДИРУЕТ, а всего лишь переводит в другой вид. Для целей защиты информации (что бы враги не догадались) оно СОВЕРШЕННО непригодно. Равно как и другие способы представления, типа перевода в бин/хекс/хз куда. Тогда уж проще упаковать исходный текст - такое кодирование, просто закачаешся ![]() У всех систем шифрования есть одно неприменное требование - возможность расшифровать сообщение должно базироваться ТОЛЬКО на знании ключа. Т.е. злоумышленник может иметь все, вплоть до исходных текстов программ шифрования и дешифрования, но без ключа он расшифровать все равно не сможет |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Поправка : Кодирует, но не шифрует. ![]() DragoonFighter, а простое кодирование и шифрование прменяются совсем для разных целей. В контексте Ваших постов речь шла о шифровании, и предлагаемые методы кодирования для этого не предназначены. Это сообщение отредактировал(а) mes - 31.1.2009, 19:38 |
|||
|
||||
DragoonFighter |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Да, вы правы, ну короче я даже не так уж и далеко зашёл чтобы применять base64. Вот моя программа, для тех кто интересуется. (Она не полная, это ещё только половина программы. ) Я закинул на ссылку код, а то тут он слишком большой. main.cpp Можете скопировать и компилировать, уведите что я имею в виду. --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
|||
|
||||
cutwater |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 2 Всего: 10 |
стрелять колотить.... челюсть до сих пор на полу....
жаль цензура не позволяет сказать все что можно по поводу кода.... я в шоке. Добавлено через 1 минуту и 36 секунд При чем это только еще половина. |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Да уж ![]() Во первых, рекомендую слово 'crypt' оттуда убрать - ибо это не 'crypt' ни в каком смысле. Во вторых, у вас китайцев в роду не было? Уж очень стиль похож, хуже только 'индийский'. В третьих, что получилось - понятно (кошмар на улице вязов), а вот что нужно было получить - совершенно не ясно ![]()
![]() |
||||
|
|||||
pan2004 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 2 Всего: 9 |
ужас... два ифа на полсотни вариантов чего стоят... Причем, это последовательность if оф, а даже не if...else!!! Да, да, программа будет проверять все полсотни условий в цикле, даже когда один уже сработал и больше не нужно. Уже не говоря о том, что ВСЕ ифы можно просто выкинуть и написать без них.
Аффтар, ознакомься хотя бы с тем, как строки и символы представляются в памяти компьютера? Правильно, числами. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
DragoonFighter, вот переписал часть Вашего кода на скорую руку - кодирование символов на основе таблице
заполнять таблицу до конца конечно же я не стал и оставил Вам для разминки.
заполняйте таблицу тестируйте и улучшайте ![]() Это сообщение отредактировал(а) mes - 2.2.2009, 23:51 |
|||
|
||||
DragoonFighter |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
А по подробнее можно? Извините меня, но я ещё новичок и это первый вариант который пришёл мне в голову. Да код очень длинный, но честно говоря я пока и не думал как, и вообще что его можно написать по другому. Может кто объяснить в чём моя ошибка и из за чего всё так плохо выглядит? За раннее спасибо. Добавлено через 4 минуты и 58 секунд
А, вот теперь я понял в чём была проблема. Я вам очень благодарен! Спасибо! На первый вид я ещё не совсем понял как всё работает, но посижу пару часиков и про анализирую. Большое спасибо! --------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
||||||||
|
|||||||||
mes |
|
||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну вот Вам еще один кодик из двух строчек на рамышление :
ответьте себе на вопрос как работает цикл л с буквами, откуда берутся цифры в консоли, как они соответствуют буквам напротив их. желаю приятных эксперементов ![]() Добавлено через 2 минуты и 48 секунд на строчки res.reserve(...); не отвлекайся, можешь их вобще закоментировать , на результат не скажется.. а описание compare здесь : http://www.cplusplus.com/reference/string/...ng/compare.html Это сообщение отредактировал(а) mes - 3.2.2009, 00:02 |
||||||
|
|||||||
DragoonFighter |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 16.7.2007 Где: Access denied Репутация: нет Всего: нет |
Благодарю mes!
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |