Форум → Программирование → Больше языков → C/C++ и C# → Написать функцию
Написать функцию
-
Есть файл тектовый в аски кодировке, нужно каждый символ этого файла представить в виде двух символов шестнадцатиричного кода исходного символа. Язык С (не с++ и не с#) . Фходные файлы очень большие бывают. Я подозреваю что можно это сделать очень простым способом типа реобразовать биты … Какие есть варианты ибо я не шарю в С??
-
21 января 2011 г. 18:07, спустя 7 часов 2 минуты 50 секунд
представляешь каждый символ в int, потом переводишь, а сам переводчик нагугли "decimal to hexadecimal C C++"You can be anything you want to be. Just turn yourself into anything you think that you could ever be. -
21 января 2011 г. 18:46, спустя 38 минут 54 секунды
а нельзя как то просто преобразовывая тип, например, нет ли в С типа вроде hexstring ? -
21 января 2011 г. 20:04, спустя 1 час 18 минут 30 секунд
Символ в ascii - это уже число (в C), что еще надо? фунцию dec2hex? -
22 января 2011 г. 1:11, спустя 5 часов 6 минут 40 секунд
не, hex это тоже только те же 2 числа… надо конверт а не dec2hex -
22 января 2011 г. 9:41, спустя 8 часов 29 минут 57 секунд
В си char это просто код символа, тоесть число длиной 1 байт, также как вайд чар - число длиной 2 байта. Тебе после чтения данных, нужно просто вывести их в другом формате (использовать не %s или %c при форматированном выводе, а %d (просто число), %x (в 16 системе)), тоесть что-то типа:do {
count = fread(fileHandle, 1, _BUFFER_LENGTH_, buffer);
for (i = 0; i < count; i++) {
fprintf(outFileHandle, "x%x ", buffer);
}
} while (count == _BUFFER_LENGTH_);Work, buy, consume, die -
22 января 2011 г. 14:54, спустя 5 часов 13 минут 36 секунд
Nyaah, спасибо это то что я подразумевал. Но наверно просто сделаю карту конверта ASCII страницы та и пиздец, а то printf может быть медленным… -
22 января 2011 г. 19:33, спустя 4 часа 38 минут 52 секунды
kostyl, что такое карта конверта? И почему она будет быстрей, чем fprintf? -
22 января 2011 г. 20:57, спустя 1 час 23 минуты 52 секунды
карта конверта
это считай массив индексы в котором соответствуют коду аски символа, а значения - два шестнадцатиричных символа, если представить в виде с троки… получается что надо будет увеличить указатель на код символа и прочитать значение - и больше ничего…
а почему будет быстрее - я не знаю, мне так кажется, надо проверить, еще не успел… -
22 января 2011 г. 22:35, спустя 1 час 37 минут 56 секунд
как использоваться то это будет? если выводиться, то явно printf()'ом сразу лучше.
а вообще:high = char >> 4;
low = char && 0b00001111; -
23 января 2011 г. 3:59, спустя 5 часов 24 минуты 1 секунду
это моё 221 сообщение на пыхе - пойду напьюсь
Пожалуйста, авторизуйтесь, чтобы написать комментарий!