Может ли кто-нибудь уточнить, что происходит, когда целое число передается в short
в C? Я использую Raspberry Pi, поэтому я знаю, что int
- 32 бита, поэтому short
должен быть 16 бит.
Скажем, я использую следующий код C, например:
int x = 0x1248642;
short sx = (short)x;
int y = sx;
Я понял, что x
будет усечен, но может кто-нибудь объяснить, как именно? Используются ли сдвиги? Как точно усечено число от 32 бит до 16 бит?