2.整數(shù)的算術(shù)、邏輯運算
(1)不同長度整數(shù)之間的轉(zhuǎn)換
一般而言,短整數(shù)可以轉(zhuǎn)換成長整數(shù)表示,而反過來卻不行。短整數(shù)轉(zhuǎn)換成長整數(shù)表示的方法是:把符號位向左擴充至所需要的長度為止。
(2)整數(shù)的變號操作
所謂“變號操作”是指將該整數(shù)變成絕對值相同但符號相反的另一個整數(shù)。變號操作又叫“取負”運算,它的處理方法是:將該整數(shù)的每一個二進位變反,然后在最末位(個位)加1,其結(jié)果即為所求值。
(3)整數(shù)的移位操作
移位操作有多種,按照移位方向來分,移位操作可分成左移、右移兩大類;按照操作性質(zhì)則又可區(qū)分為算術(shù)移位、邏輯移位和循環(huán)移位等不同類型。它們有些只對整數(shù)進行,有些則可以對任何二進制數(shù)進行。
(4)邏輯運算
邏輯運算(又叫布爾運算)總是按位進行處理的,即對應(yīng)位之間進行規(guī)定的邏輯運算,不考慮位與位之間的進位。常用的基本邏輯運算有4種:“非”運算(NOT)、“或”運算(OR)、“與”運算(AND)、“按位加”運算(XOR),它們都非常簡單。
(5)整數(shù)加法
兩個帶符號整數(shù)相加的運算方法很簡單,只需從低位到高位把所有位(包括符號位)相加,逢2進1,最高位產(chǎn)生的進位忽略不計。
(6)整數(shù)減法
兩個帶符號整數(shù)相減的運算方法也很簡單,只需先把減數(shù)變號,然后再與被減數(shù)相加即可。
(7)整數(shù)乘法
兩個無符號整數(shù)的乘法很簡單,它與日常用紙和筆進行乘法幾乎沒有什么不同。
(8)整數(shù)除法
對于補碼表示的兩個帶符號整數(shù),其除法運行比乘法還要復雜一些。下面是算法的簡單描述(假設(shè)被除數(shù)和除數(shù)都是n位):
①把除數(shù)(補碼)放入寄存器M,把被除數(shù)從n位擴展成2n位長的補碼后放入寄存器A和Q,高位部分放入A(全0或全1),低位部分放入Q。②把寄存器A和Q向左移1位。
、廴绻鸄和M同號,執(zhí)行A=A-M,否則執(zhí)行A=A+M。
④執(zhí)行上一步操作的前后,若A的符號保持不變,或者A和Q(高位部分)的結(jié)果都是0,則操作成功,令Q0 =1;否則操作不成功,恢復A原來的內(nèi)容,并令Q0 =0。⑤重復上述步驟②~④共n次,結(jié)束。
除法結(jié)束后,寄存器A中存放的是余數(shù),寄存器Q中是得到的商。若被除數(shù)與除數(shù)異號,則商為負數(shù),所以應(yīng)再對Q取補。不論何種情況,被除數(shù)、除數(shù)、商和余數(shù)總滿足下面的公式:被除數(shù)=商×除數(shù)+余數(shù)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |