Example:

uint16_t x = 0xffff; uint32_t y = x;

int16_t x = -1; int32_t y = x;

int16_t x = 1; int32_t y = x;

// sign extension int16_t x = -1; int32_t y = x;

// truncation int32_t x = 0x80000; int16_t y = x;

// bit copy int32_t x = -1; uint32_t y = x;