




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、關(guān)于位運(yùn)算符和位運(yùn)算第1頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四12.1位運(yùn)算符和位運(yùn)算運(yùn)算符含義運(yùn)算符含義按位與取反按位或右移第2頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四數(shù)值在計(jì)算機(jī)中的表示 1.二進(jìn)制位與字節(jié) 計(jì)算機(jī)系統(tǒng)的內(nèi)存儲(chǔ)器,是由許多稱為字節(jié)的單元組成的,1個(gè)字節(jié)由8個(gè)二進(jìn)制位(bit)構(gòu)成,每位的取值為0/1。最右端的那1位稱為“最低位”,編號(hào)為0;最左端的那1位稱為“最高位”,而且從最低位到最高位順序,依次編號(hào)。圖11-1是1個(gè)字節(jié)各二進(jìn)制位的編號(hào)。 圖11-1 1個(gè)字節(jié)各二進(jìn)制位的編號(hào)2.數(shù)值的原碼表示數(shù)值的原碼表示是指,將最高位用作符號(hào)位(
2、0表示正數(shù),1表示負(fù)數(shù)),其余各位代表數(shù)值本身的絕對(duì)值(以二進(jìn)制形式表示)的表示形式。為簡(jiǎn)化描述起見(jiàn),本節(jié)約定用1個(gè)字節(jié)表示1個(gè)整數(shù)。 76543210第3頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四例如,+9的原碼是00001001 符號(hào)位上的0表示正數(shù) -9的原碼是10001001。 符號(hào)位上的1表示負(fù)數(shù) 3.數(shù)值的反碼表示數(shù)值的反碼表示分兩種情況:(1)正數(shù)的反碼:與原碼相同。例如,+9的反碼是00001001。(2)負(fù)數(shù)的反碼:符號(hào)位為1,其余各位為該數(shù)絕對(duì)值的原碼按位取反(1變0、0變1)。例如,-9的反碼:因?yàn)槭秦?fù)數(shù),則符號(hào)位為“1”;其余7位為-9的絕對(duì)值+9的原碼
3、0001001按位取反為1110110,所以-9的反碼是11110110。第4頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四4.數(shù)值的補(bǔ)碼表示數(shù)值的補(bǔ)碼表示也分兩種情況:(1)正數(shù)的補(bǔ)碼:與原碼相同。例如,+9的補(bǔ)碼是00001001。(2)負(fù)數(shù)的補(bǔ)碼:符號(hào)位為1,其余位為該數(shù)絕對(duì)值的原碼按位取反;然后整個(gè)數(shù)加1。例如,-9的補(bǔ)碼:因?yàn)槭秦?fù)數(shù),則符號(hào)位為“1”;其余7位為-9的絕對(duì)值+9的原碼0001001按位取反為1110110;再加1,所以-9的補(bǔ)碼是11110111。已知一個(gè)數(shù)的補(bǔ)碼,求原碼的操作分兩種情況:(1)如果補(bǔ)碼的符號(hào)位為“0”,表示是一個(gè)正數(shù),所以補(bǔ)碼就是該數(shù)的原
4、碼。(2)如果補(bǔ)碼的符號(hào)位為“1”,表示是一個(gè)負(fù)數(shù),求原碼的操作可以是:符號(hào)位不變,其余各位取反,然后再整個(gè)數(shù)加1。第5頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四例如,已知一個(gè)補(bǔ)碼為11111001,則原碼是10000111(-7):因?yàn)榉?hào)位為“1”,表示是一個(gè)負(fù)數(shù),所以該位不變,仍為“1”;其余7位1111001取反后為0000110;再加1,所以是10000111。5.數(shù)值在計(jì)算機(jī)中的表示補(bǔ)碼在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼表示(存儲(chǔ)),原因在于:使用補(bǔ)碼,可以將符號(hào)位和其它位統(tǒng)一處理;同時(shí),減法也可按加法來(lái)處理。另外,兩個(gè)用補(bǔ)碼表示的數(shù)相加時(shí),如果最高位(符號(hào)位)有進(jìn)位,
5、則進(jìn)位被舍棄。第6頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四12.1.1 按位與運(yùn)算符&(1)格式:x&y(2)規(guī)則:對(duì)應(yīng)位均為1時(shí)才為1,否則為0:3&5=1。例如,3&5=1: 0011 & 0101 0001=1 (3)主要用途:取(或保留)1個(gè)數(shù)的某(些)位,其余各位置0。第7頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四12.1. 2按位或運(yùn)算符| (1)格式:x|y (2)規(guī)則:對(duì)應(yīng)位均為0時(shí)才為0,否則為1:3|9=11。例如,3|9=11: 0011 | 1001 1011=11 (3)主要用途:將1個(gè)數(shù)的某(些)位置1,其余各位不變。第8頁(yè),共21
6、頁(yè),2022年,5月20日,19點(diǎn)18分,星期四12.1. 3按位異或運(yùn)算符(1)格式:xy(2)規(guī)則:對(duì)應(yīng)位相同時(shí)為0,不同時(shí)為1:5742=19。 0 0 1 1 1 0 0 1 & 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1(3)主要用途:使1個(gè)數(shù)的某(些)位翻轉(zhuǎn)(即原來(lái)為1的位變?yōu)?,為0的變?yōu)?),其余各位不變。12.1. 4按位取反運(yùn)算符(1)格式:x(2)規(guī)則:各位翻轉(zhuǎn),即原來(lái)為1的位變成0,原來(lái)為0的位變成1:在IBM-PC機(jī)中,00 xffff,9=0 xfff6。(3)主要用途:間接地構(gòu)造一個(gè)數(shù),以增強(qiáng)程序的可移植性。第9頁(yè),共21頁(yè),2022年,5月2
7、0日,19點(diǎn)18分,星期四12.1. 5按位左移運(yùn)算符(1)格式:a 位數(shù)(2)規(guī)則:使操作數(shù)的各位左移,低位補(bǔ)0,高位溢出:a=15,則a=a(1)格式:a位數(shù)(2)規(guī)則:使操作數(shù)的各位右移,移出的低位舍棄;高位:1)對(duì)無(wú)符號(hào)數(shù)和有符號(hào)中的正數(shù),補(bǔ)0;2)有符號(hào)數(shù)中的負(fù)數(shù),取決于所使用的系統(tǒng):補(bǔ)0的稱為“邏輯右移”,補(bǔ)1的稱為“算術(shù)右移”。第11頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四例如: a=017: 00001111 a2為:00 000011又如a: 10101111a2: 00 101011 (邏輯右移)a2: 11 101011 (算術(shù)右移)12.1.7位運(yùn)算賦
8、值運(yùn)算符a&=b等價(jià)于a=a&b a=b等價(jià)于a=a= 8; /*右移8位,將811位移到低4位上*/ mask = ( 0 4); /*間接構(gòu)造1個(gè)低4位為1、其余各位為0的整數(shù)*/ printf(result=0 x%xn, num & mask); 第13頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四程序說(shuō)明: ( 0 4)按位取0的反,為全1;左移4位后,其低4位為0,其余各位為1;再按位取反,則其低4位為1,其余各位為0。這個(gè)整數(shù)正是我們所需要的。例從鍵盤上輸入1個(gè)正整數(shù)給int變量num,按二進(jìn)制位輸出該數(shù)第14頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四
9、#include stdio.hmain() int num, mask, i; printf(Input a integer number: ); scanf(%d,&num); mask = 115; /*構(gòu)造1個(gè)最高位為1、其余各位為0的整數(shù)(屏蔽字)*/ printf(%d= , num); for(i=1; i=16; i+) putchar(num&mask ? 1 : 0);/*輸出最高位的值(1/0)*/ num = 1; /*將次高位移到最高位上*/ if( i%4=0 ) putchar(,); /*四位一組,用逗號(hào)分開(kāi)*/ printf(bBn); 第15頁(yè),共21頁(yè),2
10、022年,5月20日,19點(diǎn)18分,星期四12.3位段 有時(shí),存儲(chǔ)1個(gè)信息不必占用1個(gè)字節(jié),只需二進(jìn)制的1個(gè)(或多個(gè))位就夠用。如果仍然使用結(jié)構(gòu)類型,則造成內(nèi)存空間的浪費(fèi)。為此,C語(yǔ)言引入了位段類型。第16頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四1. 位段的概念與定義 所謂位段類型,是一種特殊的結(jié)構(gòu)類型,其所有成員均以二進(jìn)制位為單位定義長(zhǎng)度,并稱成員為位段。例如,CPU的狀態(tài)寄存器,按位段類型定義如下:struct status unsigned sign: 1; /*符號(hào)標(biāo)志*/ unsigned zero: 1; /*零標(biāo)志*/ unsigned carry: 1; /*
11、進(jìn)位標(biāo)志*/ unsigned parity: 1; /*奇偶/溢出標(biāo)志*/ unsigned half_carry: 1; /*半進(jìn)位標(biāo)志*/ unsigned negative: 1; /*減標(biāo)志*/ flags;第17頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四顯然,對(duì)CPU的狀態(tài)寄存器而言,使用位段類型(僅需1個(gè)字節(jié)),比使用結(jié)構(gòu)類型(需要6個(gè)字節(jié))節(jié)省了5個(gè)字節(jié)。2.說(shuō)明(1)因?yàn)槲欢晤愋褪且环N結(jié)構(gòu)類型,所以位段類型和位段變量的定義,以及對(duì)位段(即位段類型中的成員)的引用,均與結(jié)構(gòu)類型和結(jié)構(gòu)變量一樣。(2)對(duì)位段賦值時(shí),要注意取置范圍。一般地說(shuō),長(zhǎng)度為n的位段,其取值范
12、圍是:0(2n-1)。(3)使用長(zhǎng)度為0的無(wú)名位段,可使其后續(xù)位段從下1個(gè)字節(jié)開(kāi)始存儲(chǔ)。第18頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四例如,struct status unsigned sign: 1; /*符號(hào)標(biāo)志*/ unsigned zero: 1; /*零標(biāo)志*/ unsigned carry: 1; /*進(jìn)位標(biāo)志*/ unsigned : 0; /*長(zhǎng)度為0的無(wú)名位段*/ unsigned parity: 1; /*奇偶/溢出標(biāo)志*/ unsigned half_carry: 1; /*半進(jìn)位標(biāo)志*/unsigned negative: 1; /*減標(biāo)志*/ flags;第19頁(yè),共21頁(yè),2022年,5月20日,19點(diǎn)18分,星期四原本6個(gè)標(biāo)志位是連續(xù)存儲(chǔ)在1個(gè)字節(jié)中的。由于加入了1個(gè)長(zhǎng)度為0的無(wú)名位段,所以其后的3個(gè)位段,從下1個(gè)字節(jié)開(kāi)始存儲(chǔ),一共占用2個(gè)字節(jié)。(4)1個(gè)位段必須存
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度水稻種植與農(nóng)業(yè)休閑農(nóng)業(yè)融合發(fā)展合同
- 二零二五年度房產(chǎn)租賃權(quán)轉(zhuǎn)讓與租賃關(guān)系繼承合同
- 2025年度知識(shí)產(chǎn)權(quán)許可合同解除協(xié)議書模板
- 二零二五年度交通設(shè)施分?jǐn)傎M(fèi)用共享協(xié)議
- 二零二五年度金融行業(yè)員工勞動(dòng)集體合同(風(fēng)險(xiǎn)管理)
- 二零二五年度房屋抵押擔(dān)保企業(yè)節(jié)能減排貸款協(xié)議
- 二零二五停薪留職員工離職權(quán)益保障與就業(yè)創(chuàng)業(yè)輔導(dǎo)合同
- 二零二五年度國(guó)際學(xué)術(shù)研討會(huì)贊助協(xié)議
- 二零二五年度柴油價(jià)格風(fēng)險(xiǎn)管理合同
- Unit 6 Whose dress is this?Period 3 單元詞匯復(fù)習(xí) 同步練習(xí)(含答案)
- 前廳月工作計(jì)劃
- 生物醫(yī)學(xué)工程倫理 課件全套 第1-10章 生物醫(yī)學(xué)工程與倫理-醫(yī)學(xué)技術(shù)選擇與應(yīng)用的倫理問(wèn)題
- 新戰(zhàn)略營(yíng)銷課件
- DB52∕T 1433-2019 固體礦產(chǎn)資源綠色勘查技術(shù)規(guī)范
- 人文地理學(xué)考試名詞解釋全套
- 統(tǒng)編版五年級(jí)下冊(cè)第五單元 習(xí)作:形形色色的人 課件 (共16張PPT)
- 大數(shù)據(jù)介紹課件
- 2019年全國(guó)高等職業(yè)院校技能大賽護(hù)理技能賽項(xiàng)試卷(19)護(hù)理技能賽項(xiàng)正式賽卷及評(píng)分標(biāo)準(zhǔn)
- 公有云技術(shù)應(yīng)用PPT高職完整全套教學(xué)課件
- 養(yǎng)老專題:養(yǎng)老理念
- 藝術(shù)概論P(yáng)PT全套完整教學(xué)課件
評(píng)論
0/150
提交評(píng)論