Погромисты |
[Jun. 9th, 2011|09:52 am] |
[ | Current Mood |
| | bitchy | ] | Jan Hruska (Sophos):
int ishexdigit(c)
int c;
{
switch(c) {
case '0': return 0;
case '1': return 1;
...........................
case 'f': case 'F': return 15;
default: return (-1);
}
}
Если за это не убивать, то что же тогда делать?
P.S. Помимо очевидного решения, мне пришла в голову и такая мысль:
return c>=48&&c<128?(c=(c&223)-16)<10?c:(c-=39)&240||c==9?-1:c:-1;
Update. Занятно, как заходит речь о какой-нибудь сложной задачке - тишина, зато сишные примитивы обсуждаются с завидным рвением. :-)
Update 2 Код был взят из книги Jan Hruska "Computer viruses and anti-virus warfare", Ellis Horwood, 1992 |
|
|