有符號位數值與無符號位數值左移右移所帶來的影響

彙編作業題2.23B中的問題

 對於無符號數以及有符號數值左移效果一致,如:

//默認i爲32位
int i = 1;  //i = 0000 0000 0000 0000 0000 0000 0000 0001
i = i << 31;//i = 1000 0000 0000 0000 0000 0000 0000 0000, i = -2147483648
unsigned j = 1;
j = j << 31;//j = 2147483648

而右移則有不同的效果,有符號數值的符號位不會發生變化,如:

int i = -2148473638;//i = 1000 0000 0000 0000 0000 0000 0000 0000
i = i >> 1;         //i = 1100 0000 0000 0000 0000 0000 0000 0000

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章