ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
12 июля
450727 Топик полностью
SciFi (04.10.2013 15:14, просмотров: 58) ответил fk0 на int2hex(0x1234) --> нарушение границ, ядро свалено. hex2int('z') -- бредовый результат. При всём при том, sscanf/strtoul и sprintf шансов облажаться практически не оставляют и позволяют минимальную валидацию ввода.
Я просто не хотел пугать оптимизаторщиков ассертами :-) static const char hexstr[] = "0123456789ABCDEF"; char int2hex(int i) { assert(0 <= i && i < 16); return hexstr[i]; } int hex2int(char h) { assert(isxdigit(h)); return strchr(hexstr, toupper(h)) - hexstr; } int hex2int2(char h[2]) { return 16 * hex2int(h[0]) + hex2int(h[1]); }
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้