淺談?dòng)?jì)算機(jī)C程序運(yùn)算涉及_第1頁
淺談?dòng)?jì)算機(jī)C程序運(yùn)算涉及_第2頁
淺談?dòng)?jì)算機(jī)C程序運(yùn)算涉及_第3頁
淺談?dòng)?jì)算機(jī)C程序運(yùn)算涉及_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、    淺談?dòng)?jì)算機(jī)c程序運(yùn)算涉及    孫程智摘 要 計(jì)算機(jī)硬件的設(shè)計(jì)目標(biāo)來源于軟件需求。高級(jí)語言中用到的各種運(yùn)算,通過編譯成底層的算數(shù)運(yùn)算指令和邏輯運(yùn)算指令實(shí)現(xiàn),這些底層運(yùn)算指令能在機(jī)器硬件上直接被執(zhí)行。因此在介紹運(yùn)算部件的設(shè)計(jì)之前,有必要先了解一下高級(jí)語言程序和機(jī)器指令所涉及到的一些運(yùn)算。所有高級(jí)語言的運(yùn)算功能大同小異,某一種語言能代表高級(jí)語言的總體情況,因此用c語言中的運(yùn)算為例進(jìn)行說明。關(guān)鍵詞 c語言 運(yùn)算 移位運(yùn)算:g306;tp311.1 :a1 c程序中涉及到的運(yùn)算加減乘除等算數(shù)運(yùn)算是高級(jí)語言中必須提供的基本運(yùn)算,可以有無符號(hào)數(shù)的算數(shù)運(yùn)算、待

2、符號(hào)整數(shù)的算數(shù)運(yùn)算和浮點(diǎn)數(shù)的算數(shù)運(yùn)算。c語言中除了這些運(yùn)算以外,還有以下幾類基本運(yùn)算:按位運(yùn)算、漏記運(yùn)算、移位運(yùn)算、位擴(kuò)展和位截?cái)噙\(yùn)算。1.1移位運(yùn)算c語言中提供了一組移位運(yùn)算,移位操作有邏輯移位和算術(shù)移位兩種,邏輯移位不考慮符號(hào)為,總是把高位移出,低位補(bǔ)0。對(duì)于無符號(hào)整數(shù)的邏輯左移,如果最高位移出的是1,則發(fā)生溢出。因?yàn)橛?jì)算機(jī)內(nèi)部的待符號(hào)整數(shù)都是用補(bǔ)碼表示的,所以對(duì)于待符號(hào)整數(shù)的移位操作應(yīng)采用補(bǔ)碼算數(shù)移位方式,左移時(shí)高位移出,低位補(bǔ)0如果移出的高位不同于移位后的符號(hào)位,即左移前,后符號(hào)位不同,則發(fā)生溢出,右移時(shí)低位移出高位補(bǔ)符號(hào)。雖然c語言沒有明確規(guī)定應(yīng)該采用邏輯移位還是算術(shù)移位,但是實(shí)際上

3、許多機(jī)器和編譯器都對(duì)無符號(hào)整數(shù)采用邏輯移位方式,而對(duì)帶符號(hào)整數(shù)采用算術(shù)移位方式。1.2邏輯運(yùn)算c語言中的邏輯算符有:符號(hào)表示or運(yùn)算;符號(hào)表示and運(yùn)算;符號(hào)表示not運(yùn)算。邏輯運(yùn)算很容易和按位運(yùn)算混希,事實(shí)上他們的功能完全不同。邏輯運(yùn)算是非數(shù)值計(jì)算,其操作數(shù)只有兩個(gè)邏輯值true和false通常用非0數(shù)表示邏輯值true,而全0數(shù)表示邏輯值false;而按位運(yùn)算是一種數(shù)值運(yùn)算,運(yùn)算時(shí)將兩個(gè)操作數(shù)中對(duì)應(yīng)各二進(jìn)位按照指定的邏輯運(yùn)算規(guī)則逐位進(jìn)行計(jì)算。1.3位擴(kuò)展和位截?cái)噙\(yùn)算c語言中沒有明確的為擴(kuò)展運(yùn)算符,但是在進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換時(shí),如果遇到一個(gè)短數(shù)項(xiàng)常數(shù)轉(zhuǎn)化,就要進(jìn)行為擴(kuò)展運(yùn)算了,進(jìn)行為擴(kuò)展運(yùn)算時(shí),

4、擴(kuò)展后的數(shù)值應(yīng)保持不變,有兩種為擴(kuò)展方式,0擴(kuò)展和符號(hào)擴(kuò)展。0擴(kuò)展用于無符號(hào)數(shù)只要在短的無符號(hào)數(shù)前添加足夠的0即可,符號(hào)擴(kuò)展用于補(bǔ)碼表示的帶符號(hào)整數(shù),通過在短的帶符號(hào)整數(shù)前添加足夠多的符號(hào)位來擴(kuò)展。1.4按位運(yùn)算語言中的按位運(yùn)算有:符號(hào)“|”表示按位or運(yùn)算,符號(hào)“&”表示按位and運(yùn)算1;符號(hào)“”表示按位not運(yùn)算;符號(hào)“”表示按位xor運(yùn)算。按位運(yùn)算的一個(gè)重要運(yùn)用就是實(shí)現(xiàn)掩碼操作,通過與給定的一個(gè)位模式進(jìn)行按位與可以提取所需要的為,然后可以對(duì)這些位進(jìn)行“置1”、“清0”、“1測(cè)試”或“0測(cè)試”等。這里位模式被稱為“掩碼”。2 mips指令中涉及的運(yùn)算高級(jí)語言中的所有運(yùn)算都是通過指令

5、系統(tǒng)中的運(yùn)算指令實(shí)現(xiàn)的,一個(gè)指令系統(tǒng)中涉及運(yùn)算的指令有很多。mips指令系統(tǒng)涉及的運(yùn)算有按位邏輯運(yùn)算、邏輯移位、算數(shù)移位、帶符號(hào)整數(shù)的加減乘除、無符號(hào)整數(shù)加減乘除、帶符號(hào)整數(shù)的符號(hào)擴(kuò)展、無符號(hào)數(shù)的0擴(kuò)展、單精度浮點(diǎn)數(shù)加減乘除、雙精度浮點(diǎn)數(shù)加減乘除等。mips指令中沒有專門的算術(shù)左移指令。因?yàn)閷?duì)于左移來說邏輯移位和算術(shù)移位的結(jié)果都一樣,都是丟棄k個(gè)最高位。并在低位補(bǔ)k個(gè)0。所以,帶符號(hào)整數(shù)和無符號(hào)整數(shù)的左移都可用邏輯左移指令實(shí)現(xiàn)。利用mips提供的這些運(yùn)算指令完全能夠?qū)崿F(xiàn)c語言所需要的各種運(yùn)算要求。3總結(jié)c語言是計(jì)算機(jī)不可或缺的一部分,我們應(yīng)該牢牢掌握。參考文獻(xiàn)1 王威.計(jì)算機(jī)網(wǎng)絡(luò)管理工作與維護(hù)技術(shù)探討j.電子技術(shù)與軟件工程,2015(03):36.2 楊文許.計(jì)算機(jī)網(wǎng)絡(luò)管理與維護(hù)技術(shù)j.祖國,2013(02):84.3 劉翌龍.淺談網(wǎng)絡(luò)管理與維

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論