Название: Строка в двоичную систему счисления Отправлено: Иван от Июль 30, 2012, 11:07 Доброго времени суток! Хочу реализовать алгоритм шифрования des, для этого мне необходимо считывать текст с виджета(пусть будет plain text edit) преобразовывать в hex,а затем из hex в двоичную систему, подскажите как правильнее и какими средствами это сделать:-)
Название: Re: Строка в двоичную систему счисления Отправлено: mutineer от Июль 30, 2012, 11:08 ты хочешь получить строку, в которой записано двоичное представление или массив байтов?
Название: Re: Строка в двоичную систему счисления Отправлено: Иван от Июль 30, 2012, 12:04 Думаю, массив байтов будет самое то:-)
Название: Re: Строка в двоичную систему счисления Отправлено: mutineer от Июль 30, 2012, 12:05 QString::to<нужнаяКодировка>() вернет QByteArray, который и есть искомый массив байтов
Название: Re: Строка в двоичную систему счисления Отправлено: Иван от Июль 30, 2012, 13:59 Я делаю так:
QByteArray qB; QString str = QString("%1").arg(ui->plainTextEdit->toPlainText()); qB = str.toAscii(); получается что каждый элемент массива - буква из строки, а не соответствующий ей ascii символ, что не так? Название: Re: Строка в двоичную систему счисления Отправлено: Kurles от Июль 30, 2012, 14:14 Я делаю так: А не проще ли было сделать так:QByteArray qB; QString str = QString("%1").arg(ui->plainTextEdit->toPlainText()); qB = str.toAscii(); получается что каждый элемент массива - буква из строки, а не соответствующий ей ascii символ, что не так? Код ? И чем буква из строки отличается от соответствующему ей ascii символу? Название: Re: Строка в двоичную систему счисления Отправлено: mutineer от Июль 30, 2012, 15:10 получается что каждый элемент массива - буква из строки, а не соответствующий ей ascii символ, что не так? Ну так и должно быть. Если читать каждый байт символом - получишь собсно букву, если считать байт числом - получишь код буквы Название: Re: Строка в двоичную систему счисления Отправлено: Иван от Июль 30, 2012, 15:43 А можно маленький примерчик?:-)
Название: Re: Строка в двоичную систему счисления Отправлено: mutineer от Июль 30, 2012, 15:44 Название: Re: Строка в двоичную систему счисления Отправлено: Kurles от Июль 30, 2012, 15:54 Код вот же пример. Только учти, что символы, отличные от ASCII, в том числе, например, кирилица, будут потеряны, если не установить QTextCodec::codecForCStrings. Название: Re: Строка в двоичную систему счисления Отправлено: Иван от Июль 30, 2012, 16:27 Я просто не могу понять как мне увидеть результат-мою строку в ascii?и как это потом переводить в двоичную систему?
Название: Re: Строка в двоичную систему счисления Отправлено: mutineer от Июль 30, 2012, 16:30 Код: int a = qB.at(0); Вот тебе код первого символа. Как выглядит строка или символ в памяти компьютера представляешь? И чем символ в памяти отличается от числа? Название: Re: Строка в двоичную систему счисления Отправлено: Kurles от Июль 31, 2012, 12:38 Такое впечатление, что тролят тут не очень тонко )
Название: Re: Строка в двоичную систему счисления Отправлено: Igors от Июль 31, 2012, 12:44 Такое впечатление, что тролят тут не очень тонко ) Та отож. Вроде des - хз, наверное круто, но чего ж тогда плавать и тонуть в азах представления данных?Название: Re: Строка в двоичную систему счисления Отправлено: DmitryM от Июль 31, 2012, 17:15 DES блочный симметричный алгоритм шифрования, тебе нужно QString представить в виде массива байтов, а потом этот массив байтов пилить на блоки по 64 бит
так что юзай следующие методы Код
|