- 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
Soul_re@ver 28.06.2014 23:53 # 0
>инициализация произведена не в конструкторе
Плюсанул бы уже за это.
brutushafens 29.06.2014 00:20 # −5
Fike 29.06.2014 19:44 # 0
kegdan 29.06.2014 00:47 # −2
defecate-plusplus 29.06.2014 00:59 # +6
Soul_re@ver 29.06.2014 10:23 # 0
Присваивание 16 значений каждый запуск функции?
Построение дерева с сопутствующими накладными расходами на поддержку и доступ ради хранения 80 байт информации?
Потенциальный выход за границы вектора?
Нет, всё нормально.
Qwertiy 29.06.2014 10:48 # 0
Кстати, дерево построится 1 раз, вероятно оно достаточно умное, чтобы 16 раз (на каждый вызов) перезаписать значения в существующих узлах без перестроения.
UPDATE: А, понял. Выход за вектор в main'е имелся в виду. Я что-то main невнимательно смотрел. Но если известно, что длина чётная, то всё хорошо.
Soul_re@ver 29.06.2014 18:23 # 0
+ Каждая нода хранит как минимум 3 указателя. То есть на накладные расходы на поддержание дерева мы тратим больше памяти чем заняла бы простая и быстрая lookup table для всех 256 значений чара.
kegdan 29.06.2014 12:39 # 0
kegdan 29.06.2014 14:20 # 0
defecate-plusplus 29.06.2014 14:29 # +1
еще один индус?
накой тебе пробелы? чтобы прилепить нахер не сдавшиеся регулярки? а в нижний регистр зачем привел? явно, чтобы пожрать памяти и дать фору джаваскрипту
kegdan 29.06.2014 14:41 # 0
defecate-plusplus 29.06.2014 14:47 # +2
а 3.1415 подгонит пацанский битоебский алгоритм, который будет преобразовывать сразу пачками по 4/8 символов
kegdan 29.06.2014 15:34 # 0
с пацанским методом
bormand 29.06.2014 16:24 # 0
> if (chToInt > 15||chToInt<0)
Ну и срань. Оно ':', к примеру, распарсит как 10.
kegdan 29.06.2014 16:33 # 0
bormand 29.06.2014 16:37 # 0
kegdan 29.06.2014 16:48 # +2
А вывод прост- не надо выебываться
bormand 29.06.2014 17:04 # 0
> А вывод прост- не надо выебываться
+1. Но if (scd = !scd) это самый настоящий выебон. За такое тебя коллеги вместе с тимлидом подвергнут анальной каре.
kegdan 29.06.2014 17:07 # 0
Это лень писать еще одну строку
>>Но я бы всё-таки проверил, что scd в конце false (последний байт допарсился).
Не наши проблемы если в строке нечетное количество валидных символов. Кочесно можно упасть с пеной из рта...
bormand 29.06.2014 17:10 # +3
Пишут код один раз, а читать будут дохера. Поэтому ориентироваться надо на удобство чтения.
> Не наши проблемы если в строке нечетное количество валидных символов.
Царь, ты?
> Кочесно можно упасть с пеной из рта...
Ну я предпочитаю узнавать об ошибках, а не замалчивать их... Хотя опять же, все зависит от постановки.
kegdan 29.06.2014 17:19 # 0
>>Ну я предпочитаю узнавать об ошибках, а не замалчивать их... Хотя опять же, все зависит от постановки.
Ну тогда нужно и от левых символов умирать
https://ideone.com/WGqhhY
kegdan 29.06.2014 18:50 # 0
Говно иного сорта
brutushafens 29.06.2014 17:06 # −1
bormand 29.06.2014 17:07 # +1
Заплатку, раз уж script - рулон. Ни к чему эти англицизмы :)
bormand 29.06.2014 16:16 # +2
http://govnokod.ru/12822
kegdan 29.06.2014 15:09 # 0
bormand 29.06.2014 16:17 # 0
Дык можно было в него и встроить проверку, и кидать исключение, если что-то пошло не так. Регулярки и проход с копированием ради удаления пробелов тут совсем ни к чему.
wvxvw 29.06.2014 17:26 # +1
Вот, я тоже нашел свои детские факториалы.
TarasB 29.06.2014 16:07 # +2
Soul_re@ver 29.06.2014 18:25 # 0
Хотя функциональненько.