【408計算機組成原理】—移位運算(七)
一、算數移位
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iN0kTN4EGN5ETM1QjY4ADNzYzXxQTNyQDM4AzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
移位:通過改變各個數位位和小數點的相對位置,進而改變各數位位的位權,可用移位運算實作乘法,除法。
二、原碼的算數移位
原碼的算數移位:符号位保持不變,僅對數值位進行移位
算數右移:高位補0,低位舍棄,若舍棄的位等于0,則相當于除2,若舍棄的位不等于0,則會丢失精度
原碼的算數左移:低位補0,高位舍棄,若舍棄的位等于0,相當于乘2,若舍棄的位不等于0,則會出現嚴重誤差
三、反碼的算數移位
反碼的算數移位,正數的反碼與原碼相同,是以對正數反碼的移位運算也和原碼相同。
- 右移:高位補0,低位舍棄
- 左移:低位補0,高位舍棄
反碼的算數移位:負數的反碼數值位與原碼相反,是以負數反碼的移位運算規則如下:
- 右移:高位補1,低位舍棄
- 左移:低位補1,高位舍棄
四、補碼的算數移位
正數補碼的移位運算和原碼保持一緻
- 右移:高位補0,低位舍棄
- 左移:低位補0,高位舍棄
補碼的算數移位:負數的補碼=反碼末位+1,導緻反碼最右邊幾個連續的1都因進位而變為0,直到進位碰到第一個0為止。
規律:負數補碼中,最右邊的1同原碼,最右邊的1的左邊同反碼
負數補碼的算數移位規則如下:
- 右移(同反碼):高位補1,低位舍棄
- 左移:(同原碼):低位補0,高位舍棄
📢📢算數移位總結:
五、邏輯移位
邏輯右移:高位補0,低位舍棄
邏輯左移:低位補0,高位舍棄