- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
unsigned char ToChar(const char& c1, const char& c2)
{
static map<char,int> mapping;
mapping['0'] = 0;
mapping['1'] = 1;
mapping['2'] = 2;
mapping['3'] = 3;
mapping['4'] = 4;
mapping['5'] = 5;
mapping['6'] = 6;
mapping['7'] = 7;
mapping['8'] = 8;
mapping['9'] = 9;
mapping['A'] = 10;
mapping['B'] = 11;
mapping['C'] = 12;
mapping['D'] = 13;
mapping['E'] = 14;
mapping['F'] = 15;
return (unsigned char)(mapping[c2] + mapping[c1] * 16);
}
int main()
{
// Assuming "vector<unsigned char> content" stores the data in Hex format, one Hex character per cell.
for(size_t i=0, j=0; i < content.size(); i+=2, j++)
{
content[j] = ToChar(content[i], content[i+1]); // one unsigned char => 2 Hex characters
}
}
Индусы на СО. Я даже не знаю, что тут самое нелепое.
http://stackoverflow.com/a/24470147/2489083
>инициализация произведена не в конструкторе
Плюсанул бы уже за это.
Присваивание 16 значений каждый запуск функции?
Построение дерева с сопутствующими накладными расходами на поддержку и доступ ради хранения 80 байт информации?
Потенциальный выход за границы вектора?
Нет, всё нормально.
Кстати, дерево построится 1 раз, вероятно оно достаточно умное, чтобы 16 раз (на каждый вызов) перезаписать значения в существующих узлах без перестроения.
UPDATE: А, понял. Выход за вектор в main'е имелся в виду. Я что-то main невнимательно смотрел. Но если известно, что длина чётная, то всё хорошо.
+ Каждая нода хранит как минимум 3 указателя. То есть на накладные расходы на поддержание дерева мы тратим больше памяти чем заняла бы простая и быстрая lookup table для всех 256 значений чара.
еще один индус?
накой тебе пробелы? чтобы прилепить нахер не сдавшиеся регулярки? а в нижний регистр зачем привел? явно, чтобы пожрать памяти и дать фору джаваскрипту
а 3.1415 подгонит пацанский битоебский алгоритм, который будет преобразовывать сразу пачками по 4/8 символов
с пацанским методом
> if (chToInt > 15||chToInt<0)
Ну и срань. Оно ':', к примеру, распарсит как 10.
А вывод прост- не надо выебываться
> А вывод прост- не надо выебываться
+1. Но if (scd = !scd) это самый настоящий выебон. За такое тебя коллеги вместе с тимлидом подвергнут анальной каре.
Это лень писать еще одну строку
>>Но я бы всё-таки проверил, что scd в конце false (последний байт допарсился).
Не наши проблемы если в строке нечетное количество валидных символов. Кочесно можно упасть с пеной из рта...
Пишут код один раз, а читать будут дохера. Поэтому ориентироваться надо на удобство чтения.
> Не наши проблемы если в строке нечетное количество валидных символов.
Царь, ты?
> Кочесно можно упасть с пеной из рта...
Ну я предпочитаю узнавать об ошибках, а не замалчивать их... Хотя опять же, все зависит от постановки.
>>Ну я предпочитаю узнавать об ошибках, а не замалчивать их... Хотя опять же, все зависит от постановки.
Ну тогда нужно и от левых символов умирать
https://ideone.com/WGqhhY
Говно иного сорта
Заплатку, раз уж script - рулон. Ни к чему эти англицизмы :)
http://govnokod.ru/12822
Дык можно было в него и встроить проверку, и кидать исключение, если что-то пошло не так. Регулярки и проход с копированием ради удаления пробелов тут совсем ни к чему.
Вот, я тоже нашел свои детские факториалы.
Хотя функциональненько.