При преобразовании char в int важно учитывать знаковость переменной, потому что тип char может быть как знаковым (signed char), так и беззнаковым (unsigned char). 1 Результат зависит от реализации компилятора, и такое поведение разрешено стандартом. 1
Значение беззнакового типа char при преобразовании к знаковому типу int может оказаться отрицательным из-за особенностей реализации машинных инструкций на некоторых процессорах. 1 Чтобы избежать неоднозначностей, рекомендуется явно указывать знаковость для типа char. 1
Также тип char может интерпретироваться программистом либо как число со знаком, либо как символ (буква, цифра и т. п.), представленный семи- или восьмибитным кодом (например, по таблице ASCII). 2