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