Conversões aritméticas comuns em C: qual é a lógica por trás dessa regra específica

De k & R C

Primeiro, se um dos operandos for longo duplo, o outro será convertido em longo duplaso contrário, se um dos operandos for duplo, o outro será convertido para o dobraso contrário, se um operando for flutuante, o outro será convertido em flutuant Caso contrário, as promoções integrais são realizadas nos dois operandos; ...

Isso significaria abaixo da expressão

char a,b,c;

c=a+b;

é realmente calculado como

c = char((int)a+(int)b);

Qual é a lógica por trás dessa regra?

Essas conversões ocorrem se a, bec são curtos?

questionAnswers(6)

yourAnswerToTheQuestion