整數的運算
(1)不同長度整整之間的轉換
一般而言,短整數可以轉換成長整數表示而保持其數值不變,而反過來卻不行。短整數轉換成長整數表示的方法是,把符號位向左擴充至所需要的長度為止。
(2)整數的變號操作
所謂“變號操作”,是指將該整數變成絕對值相同符號相反的另一個整數。變號操作又稱為“取負”運算,它的處理方法是,將該整數的每一個二進位變反,然后在最末位(個位)加1,其結果即為所求。
(3)整數的移位操作
移位操作有多種。按照移位方向來分,移位操作可分成左移、右移兩大類;按照操作性質則又可區分為算術移位、邏輯移位和循環移位等不同類型。
① 算術移位
當乘數或除數是2n時,算術移位用來快速地完成對整數進行乘法或除法的運算。算術左移n位相當于乘以2n,執行方法是把原來的數中每一位都向左移n個位置,左面移出的高位丟棄,右面低位空出的位置上全部補0。若正數左移過程中移出的位中包含1,或者負數移出的位中包含0時,則表示運算結果超出了可表示的數值范圍,即發生了溢出,結果不正確。
② 邏輯移位
邏輯左移n位的執行方法是,把原來的數中每一位都向左移動n個位置,左面移出的高位丟棄,右面低位空出的位補0。
邏輯右移n位的執行方法是把原來的每一位都向右移動n個位置,右面移出的低位丟棄,左面高位的位置上全部補0。
③ 循環移位
循環移位是一種邏輯操作,它僅僅移動操作數中二進位信息的位置,不會丟棄任何一位信息。循環左移n位是把原來的數中每一位都向左移動n個位置,左面移出的高位放在右面低位空出的位置上。循環右移n位則把原來數中的每一位都向右移動n個位置,右面移出的低位放到左面高位空出的位置上。
(4)邏輯運算
邏輯運算(又稱為布爾運算)總是按位進行處理的,即對應位之間進行規定的邏輯運算,不考慮位與位之間的進位。常用的基本邏輯運算有4種:“非”運算(NOT)、“或”運算(OR)、“與”運算(AND)、“按位加”運算(XOR),它們都非常簡單。
(5)整數加法
兩個帶符號整數相加的運算方法很簡單,只需從低位到高位把所有位(包括符號位)相加,逢二進一,最高位產生的進位忽略不計。做加法運算時判斷有無溢出的規則是,兩個同號的整數相加,若結果的符號卻相反,則發生溢出。注意,是否發生溢出并不取決于最高位有無進位。
(6)整數減法
兩上帶符號整數相減的運算方法也很簡單,只需先把減數變號,然后再與被減數相加即可。
做減法運算時判斷有無溢出的規則是,兩個異號的整數相減,若結果的符號與被減數符號相反,則發生益出。當然,是否發生溢出也并不取決于最高位有無進位。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |