вздымщик Цыпа писал(а):
Если компилятор приличный, то можно написать:
Код:
int CharToInt(char alpha) {
switch(alpha) {
case 'A'...'J': return alpha + 10 - 'A';
case '0'...'9': return alpha - '0';
default: throw bad_something();
}
}
Хрена себе... Это какие же компиляторы позволяют такое вытворять в switch? Очень удобно, не спорю - более того, мне недавно именно это и было нужно - код типа
Код:
if (a < 39) {}
else if (a < 45) {}
else if...
требует доп. проц. времени, а размножать однотипный код в switch - займет слишком много памяти. Как реализуется switch, подобный написанному Вами - размножением кода, или условными переходами, Вы не знаете?
Strider5000 писал(а):
Большое спасибо за ответ, но хотелось бы знать, для чего вообще используется данный фрагмент кода в программе?
Обычный перевод шестнадцатеричного чила, выраженного в символьном виде (ASCII коды символов 0...9, A...F), в двоичное число типа Int.
Добавлено спустя 4 минуты 8 секунд:
вздымщик Цыпа, кстати, Вы break не забыли после первого case поставить? Или в Вашем компиляторе это уже не обязательно - следующий case не выполнится, если предыдущий выполнялся?