C語言 有符號數和無符號數的移位運算

對於無符號數來講,左移和右移都是用的邏輯移位,即左移低位空出的補0,右移高位空出的補0;spa 對於有符號數來講,用的是算術移位,左移多出的會移進符號位,右移在gcc編譯器下是算術右移,即空出的高位補符號位。編譯器 例:編譯 int16_t n = 0x4000; //此時符號位爲0gcc n <<= 1; //此時n爲0x8000gc int16_t num = 0x8000; //此時符號位爲
相關文章
相關標籤/搜索