Asignación de enteros sin signo

En C y C, muchos tipos básicos se pueden convertir entre sí automáticamente.

Por ejemplo, puedes asignar short a una variable int o long.

Por supuesto, tanto los enteros sin signo como los enteros con signo tienen mecanismos de conversión para lograr la conversión. La conversión exacta variará según la implementación del compilador.

Por ejemplo, algunos compiladores usan expresiones estándar basadas en enteros con signo

para representar -1 en orden de bytes binarios como 11111 (es decir, negar y agregar uno como de costumbre) - Pero entre Enteros positivos, 65438.

Por lo tanto, es similar a convertir -200 en un entero positivo.

El mecanismo de conversión se divide en conversión de tipo de promoción y conversión de tipo de promoción es automática.

Entonces, cuando asignas un valor a un entero sin signo, el compilador implementará un mecanismo de conversión dentro de C para convertirlo en un valor razonable.