Duplicar posibles:
Addition of two chars produces intde desbordamiento de enteros - ¿Por qué no
Dado el siguiente código C++:
unsigned char a = 200;
unsigned char b = 100;
unsigned char c = (a + b)/2;
La salida es de 150 como lógicamente esperar, sin embargo no debería haber un desbordamiento de enteros en la expresión (a + b)
?
Obviamente debe haber una promoción entera para tratar el desbordamiento aquí, o está sucediendo algo más que no puedo ver. Me preguntaba si alguien podría iluminarme, por lo que puedo saber en qué puedo y no debo confiar en términos de promoción y desbordamiento de enteros.
+1 para una pregunta bien escrita. – GManNickG