Cuando un número entero está fuera del rango del tipo, el valor máximo + 1 se suma/resta (depende de la parte del rango del número). Por ejemplo,¿Por qué las conversiones implícitas C funcionan como lo hacen?
unsigned short num = 65537;
num tendrá un valor de 1 (65 536 se sustrajo). Mi pregunta es: ¿por qué sucede? Mi intuición me dice que tiene algo que ver con la bandera de acarreo y la bandera de desbordamiento, porque el valor máximo es siempre 1111 ....
¡Gracias de antemano!
Trunca ... – Mehrdad
Ejemplo perfecto de por qué debería compilarse básicamente con todas las advertencias posibles habilitadas. En cuanto a por qué eso está en el estándar sin embargo .... No tengo idea: p. (A menos que se refiera específicamente a 1. Eso es solo un desbordamiento de complementos de 2) – Corbin
Ejemplo de dicho mensaje de advertencia: 'advertencia: entero grande truncado implícitamente al tipo sin firmar' – curiousguy