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