算及程序調(diào)試

算及程序調(diào)試

ID:43221460

大?。?89.50 KB

頁(yè)數(shù):79頁(yè)

時(shí)間:2019-10-04

算及程序調(diào)試_第1頁(yè)
算及程序調(diào)試_第2頁(yè)
算及程序調(diào)試_第3頁(yè)
算及程序調(diào)試_第4頁(yè)
算及程序調(diào)試_第5頁(yè)
資源描述:

《算及程序調(diào)試》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、第12章位運(yùn)算及程序調(diào)試1一、位運(yùn)算位運(yùn)算和位運(yùn)算符位運(yùn)算舉例2位運(yùn)算按二進(jìn)制位進(jìn)行運(yùn)算位運(yùn)算的運(yùn)算對(duì)象是二進(jìn)制的位位運(yùn)算速度快,效率高,節(jié)省存儲(chǔ)空間只能對(duì)整型數(shù)據(jù)(包括字符型)進(jìn)行位運(yùn)算負(fù)數(shù)以補(bǔ)碼形式參與運(yùn)算注意與邏輯運(yùn)算區(qū)別3位運(yùn)算符(BitwiseOperators)運(yùn)算符名稱舉例優(yōu)先級(jí)~按位取反~flag(高)(算術(shù)運(yùn)算符)<<左移a<<2>>右移b>>3(關(guān)系運(yùn)算符)&按位與flag&0x37^按位異或flag^0xC4

2、按位或flag

3、0x5A(低)(賦值運(yùn)算符)4按位與(BitwiseAND)運(yùn)算規(guī)則0&0=0;0&1=0;1

4、&0=0;1&1=1;用法按位清零保留某些指定位5按位與舉例運(yùn)算舉例1010,1101(0xAD)&0110,1001(0x69)0010,1001(0x29)按位清零、保留xxxx,xxxx_____&0110,0010(0x62)0xx0,00x0_____6按位或(BitwiseInclusiveOR)運(yùn)算規(guī)則0

5、0=0;0

6、1=1;1

7、0=1;1

8、1=1;用法按位置一7按位或舉例運(yùn)算舉例1010,1101(0xAD)

9、0110,1001(0x69)1110,1101(0xED)按位置一xxxx,xxxx_____

10、0110,0010

11、(0x62)x11x,xx1x_____8按位異或(BitwiseExclusiveOR,XOR)運(yùn)算規(guī)則0^0=0;0^1=1;1^0=1;1^1=0;說明相“異”則為1,相“同”則為0相當(dāng)于按位且無進(jìn)位的加法9按位異或用法舉例特定位翻轉(zhuǎn)1010,1101(0xAD)^0110,1001(0x69)1100,0100(0xC4)與0相異或,保持原值不變與自身相異或,則全部位清零交換兩個(gè)整數(shù)值a=a^b;b=b^a;a=a^b;10按位取反(One'sComplement)運(yùn)算規(guī)則~0=1;~1=0;用法所有位翻轉(zhuǎn)獲得適用于不同系統(tǒng)的位運(yùn)算

12、模板11按位取反舉例運(yùn)算舉例~1010,1101(0xAD)0101,0010(0x52)位運(yùn)算模板對(duì)一個(gè)int類型的整數(shù)最后四位清零16位整數(shù):a&0xF032位整數(shù):a&0xFFF0可以使用:a&~(int)0xF12左移(LeftShift)運(yùn)算規(guī)則i<

13、i=0x2431;j=i<<2;/*j=-0x6F3C,溢出*/j=i<<3;/*j=0x2188,溢出*/14右移(RightShift)運(yùn)算規(guī)則i>>n把i各位全部向右移動(dòng)n位最右端的n位被移出丟棄最左端的n位用0補(bǔ)齊(邏輯右移)或最左端的n位用符號(hào)位補(bǔ)齊(算術(shù)右移)用法右移n位相當(dāng)于除以2n,并舍去小數(shù)部分運(yùn)算速度比真正的除法和冪運(yùn)算快得多15右移舉例運(yùn)算舉例0101,1101>>30000,1011(101)邏輯右移和算術(shù)右移inti,j;i=-0x2431;j=i>>2;/*j=0x36F3,邏輯右移*/j=i>>2;/*j=0x

14、F6F3,算術(shù)右移*/16不同長(zhǎng)度數(shù)據(jù)位運(yùn)算規(guī)則兩個(gè)操作數(shù)右端對(duì)齊短的數(shù)據(jù)左端用符號(hào)位補(bǔ)齊正數(shù)或無符號(hào)數(shù)左端用0補(bǔ)滿負(fù)數(shù)左端用1補(bǔ)滿兩個(gè)操作數(shù)長(zhǎng)度相等后再運(yùn)算17位運(yùn)算舉例將16進(jìn)制短整數(shù)按二進(jìn)制打印輸出輸入:F1E2輸出:1111000111100010輸入:13A5輸出:000100111010010118例1:將16進(jìn)制數(shù)按二進(jìn)制輸出includevoidmain(){inti;shorta;scanf("%X",&a);for(i=15;i>=0;i--)printf("%1d",a&1<

15、程序調(diào)試常見錯(cuò)誤分析程序調(diào)試20要真正學(xué)好C、用好C并不容易,“靈活”固然是好事,但也使人難以掌握,尤其是初學(xué)者往往出了錯(cuò)還不知怎么回事。C編譯程序?qū)φZ法的檢查不如其他高級(jí)語言那樣嚴(yán)格(這是為了給程序人員留下“靈活”的余地)。因此,往往要由程序設(shè)計(jì)者自己設(shè)法保證程序的正確性。調(diào)試一個(gè)C程序要比調(diào)試一個(gè)PASCAL或FORTRAN程序更困難一些。需要不斷積累經(jīng)驗(yàn),提高程序設(shè)計(jì)和調(diào)試程序的水平。C語言有些語法規(guī)定和其他高級(jí)語言不同,學(xué)習(xí)過其他高級(jí)語言的讀者往往按照使用其他高級(jí)語言的習(xí)慣來寫C程序,這也是出錯(cuò)的一個(gè)原因。21常見錯(cuò)誤分析下面將初學(xué)

16、者在學(xué)習(xí)和使用C語言(不包括C++)時(shí)容易犯的錯(cuò)誤列舉出來,以起提醒的作用。這些內(nèi)容在以前各章中大多已談到,為便于查閱,在本章中集中列舉,供初學(xué)者參考,以此為鑒。(1)忘記定義變

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。