|
kostyl ↓
|
 |
|
21 Январь, 2011, 11:04:24
|
НЕ ХУЕТА!
ХУЕТА!
|
занедельный антипаттерн
Группа: Джедаи Карма: 60
Сообщений: 3522 Сила слова: 1.7
|
Есть файл тектовый в аски кодировке, нужно каждый символ этого файла представить в виде двух символов шестнадцатиричного кода исходного символа. Язык С (не с++ и не с#) . Фходные файлы очень большие бывают. Я подозреваю что можно это сделать очень простым способом типа реобразовать биты ... Какие есть варианты ибо я не шарю в С??
|
|
|
|
|
Записан
|
качество жизни обратно пропорционально количеству лени
|
|
|
|
Frozzeg ↓
|
 |
|
21 Январь, 2011, 06:07:14 , спустя 7 часов 2 минуты 50 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Санитары Карма: 92
Сообщений: 5499 Сила слова: 1.67
|
представляешь каждый символ в int, потом переводишь, а сам переводчик нагугли "decimal to hexadecimal C C++"
|
|
|
|
|
Записан
|
Эксперт — это человек, который в узкой области допустил все возможные ошибки. © Нильс Бор. Отложить на завтра — значит впасть в рекурсию. © Frozzeg
|
|
|
|
kostyl ↓
|
 |
|
21 Январь, 2011, 06:46:08 , спустя 38 минут 54 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
занедельный антипаттерн
Группа: Джедаи Карма: 60
Сообщений: 3522 Сила слова: 1.7
|
а нельзя как то просто преобразовывая тип, например, нет ли в С типа вроде hexstring ?
|
|
|
|
|
Записан
|
качество жизни обратно пропорционально количеству лени
|
|
|
|
krasun ↓
|
 |
|
21 Январь, 2011, 08:04:38 , спустя 1 час 18 минут 30 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
Символ в ascii - это уже число (в C), что еще надо? фунцию dec2hex?
|
|
|
|
|
Записан
|
|
|
|
|
kostyl ↓
|
 |
|
22 Январь, 2011, 01:11:18 , спустя 5 часов 6 минут 40 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
занедельный антипаттерн
Группа: Джедаи Карма: 60
Сообщений: 3522 Сила слова: 1.7
|
не, hex это тоже только те же 2 числа... надо конверт а не dec2hex
|
|
|
|
|
Записан
|
качество жизни обратно пропорционально количеству лени
|
|
|
|
Nyaah ↓
|
 |
|
22 Январь, 2011, 09:41:15 , спустя 8 часов 29 минут 57 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи Карма: 34
Сообщений: 521 Сила слова: 6.53
|
В си 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[i]);
}
} while (count == _BUFFER_LENGTH_);
|
|
|
|
|
Записан
|
Work, buy, consume, die
|
|
|
|
kostyl ↓
|
 |
|
22 Январь, 2011, 02:54:51 , спустя 5 часов 13 минут 36 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
занедельный антипаттерн
Группа: Джедаи Карма: 60
Сообщений: 3522 Сила слова: 1.7
|
Nyaah, спасибо это то что я подразумевал. Но наверно просто сделаю карту конверта ASCII страницы та и пиздец, а то printf может быть медленным...
|
|
|
|
|
Записан
|
качество жизни обратно пропорционально количеству лени
|
|
|
|
krasun ↓
|
 |
|
22 Январь, 2011, 07:33:43 , спустя 4 часа 38 минут 52 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
kostyl, что такое карта конверта? И почему она будет быстрей, чем fprintf?
|
|
|
|
|
Записан
|
|
|
|
|
kostyl ↓
|
 |
|
22 Январь, 2011, 08:57:35 , спустя 1 час 23 минуты 52 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
занедельный антипаттерн
Группа: Джедаи Карма: 60
Сообщений: 3522 Сила слова: 1.7
|
карта конверта
это считай массив индексы в котором соответствуют коду аски символа, а значения - два шестнадцатиричных символа, если представить в виде с троки... получается что надо будет увеличить указатель на код символа и прочитать значение - и больше ничего...
а почему будет быстрее - я не знаю, мне так кажется, надо проверить, еще не успел...
|
|
|
|
|
Записан
|
качество жизни обратно пропорционально количеству лени
|
|
|
|
vasa_c ↓
|
 |
|
22 Январь, 2011, 10:35:31 , спустя 1 час 37 минут 56 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: в ухо Карма: 81
Сообщений: 2459 Сила слова: 3.29
|
как использоваться то это будет? если выводиться, то явно printf()'ом сразу лучше.
а вообще:
high = char >> 4;
low = char && 0b00001111;
|
|
|
|
|
Записан
|
|
|
|
|
fgets ↓
|
 |
|
23 Январь, 2011, 03:59:32 , спустя 5 часов 24 минуты 1 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: -1
Сообщений: 1119 Сила слова: -0.09
|
это моё 221 сообщение на пыхе - пойду напьюсь
|
|
|
|
|
Записан
|
эй детка не ссы в бассейн
Если в бочку с говном положить ложку меда — получится бочка говна. Если в бочку с медом положить ложку говна, не обольщайтесь ...
|
|
|
|