Cuando un int se convierte en corto y truncado, ¿cómo se determina el nuevo valor?

¿Alguien puede aclarar qué sucede cuando un entero se lanza a unshort ¿Cía? Estoy usando Raspberry Pi, así que sé que unint es de 32 bits, y por lo tanto unshort debe ser de 16 bits.

Digamos que uso el siguiente código C por ejemplo:

int x = 0x1248642;
short sx = (short)x;
int y = sx;

Lo entiendox se truncaría, pero ¿alguien puede explicar cómo exactamente? ¿Se utilizan turnos? ¿Cómo se trunca exactamente un número de 32 bits a 16 bits?

Respuestas a la pregunta(6)

Su respuesta a la pregunta