Потому что, тип char имеет диапазон от -128 до 127 знаков по умолчанию. Простое заключение следующее из этого правила - писать можно так:
- for(char a=-128; a<127; a++)</li>
Или использовать unsigned char:
- for(unsigned char a=0; a<255; a++)</li>
У которого диапазон от 0 до 255.