




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
關(guān)于位運算符和位運算第1頁,講稿共21頁,2023年5月2日,星期三12.1位運算符和位運算運算符含義運算符含義&按位與~取反|按位或<<左移^按位異或>>右移第2頁,講稿共21頁,2023年5月2日,星期三數(shù)值在計算機中的表示1.二進制位與字節(jié)
計算機系統(tǒng)的內(nèi)存儲器,是由許多稱為字節(jié)的單元組成的,1個字節(jié)由8個二進制位(bit)構(gòu)成,每位的取值為0/1。最右端的那1位稱為“最低位”,編號為0;最左端的那1位稱為“最高位”,而且從最低位到最高位順序,依次編號。圖11-1是1個字節(jié)各二進制位的編號。
圖11-11個字節(jié)各二進制位的編號2.數(shù)值的原碼表示數(shù)值的原碼表示是指,將最高位用作符號位(0表示正數(shù),1表示負數(shù)),其余各位代表數(shù)值本身的絕對值(以二進制形式表示)的表示形式。為簡化描述起見,本節(jié)約定用1個字節(jié)表示1個整數(shù)。
76543210第3頁,講稿共21頁,2023年5月2日,星期三例如,+9的原碼是00001001└→符號位上的0表示正數(shù)
-9的原碼是10001001。└→符號位上的1表示負數(shù)
3.數(shù)值的反碼表示數(shù)值的反碼表示分兩種情況:(1)正數(shù)的反碼:與原碼相同。例如,+9的反碼是00001001。(2)負數(shù)的反碼:符號位為1,其余各位為該數(shù)絕對值的原碼按位取反(1變0、0變1)。例如,-9的反碼:因為是負數(shù),則符號位為“1”;其余7位為-9的絕對值+9的原碼0001001按位取反為1110110,所以-9的反碼是11110110。第4頁,講稿共21頁,2023年5月2日,星期三4.數(shù)值的補碼表示數(shù)值的補碼表示也分兩種情況:(1)正數(shù)的補碼:與原碼相同。例如,+9的補碼是00001001。(2)負數(shù)的補碼:符號位為1,其余位為該數(shù)絕對值的原碼按位取反;然后整個數(shù)加1。例如,-9的補碼:因為是負數(shù),則符號位為“1”;其余7位為-9的絕對值+9的原碼0001001按位取反為1110110;再加1,所以-9的補碼是11110111。已知一個數(shù)的補碼,求原碼的操作分兩種情況:(1)如果補碼的符號位為“0”,表示是一個正數(shù),所以補碼就是該數(shù)的原碼。(2)如果補碼的符號位為“1”,表示是一個負數(shù),求原碼的操作可以是:符號位不變,其余各位取反,然后再整個數(shù)加1。第5頁,講稿共21頁,2023年5月2日,星期三例如,已知一個補碼為11111001,則原碼是10000111(-7):因為符號位為“1”,表示是一個負數(shù),所以該位不變,仍為“1”;其余7位1111001取反后為0000110;再加1,所以是10000111。5.數(shù)值在計算機中的表示──補碼在計算機系統(tǒng)中,數(shù)值一律用補碼表示(存儲),原因在于:使用補碼,可以將符號位和其它位統(tǒng)一處理;同時,減法也可按加法來處理。另外,兩個用補碼表示的數(shù)相加時,如果最高位(符號位)有進位,則進位被舍棄。第6頁,講稿共21頁,2023年5月2日,星期三12.1.1"按位與"運算符──&
(1)格式:x&y
(2)規(guī)則:對應(yīng)位均為1時才為1,否則為0:3&5=1。例如,3&5=1:0011&0101 ──── 0001=1
(3)主要用途:取(或保留)1個數(shù)的某(些)位,其余各位置0。
第7頁,講稿共21頁,2023年5月2日,星期三12.1.2."按位或"運算符──|
(1)格式:x|y
(2)規(guī)則:對應(yīng)位均為0時才為0,否則為1:3|9=11。例如,3|9=11:0011 |1001──── 1011=11
(3)主要用途:將1個數(shù)的某(些)位置1,其余各位不變。
第8頁,講稿共21頁,2023年5月2日,星期三12.1.3."按位異或"運算符──^(1)格式:x^y(2)規(guī)則:對應(yīng)位相同時為0,不同時為1:57^42=19。
00111001&00101010 ────────
00010011(3)主要用途:使1個數(shù)的某(些)位翻轉(zhuǎn)(即原來為1的位變?yōu)?,為0的變?yōu)?),其余各位不變。12.1.4."按位取反"運算符──~(1)格式:~x(2)規(guī)則:各位翻轉(zhuǎn),即原來為1的位變成0,原來為0的位變成1:在IBM-PC機中,~0=0xffff,~9=0xfff6。(3)主要用途:間接地構(gòu)造一個數(shù),以增強程序的可移植性。第9頁,講稿共21頁,2023年5月2日,星期三12.1.5."按位左移"運算符──<<(1)格式:a<<位數(shù)(2)規(guī)則:使操作數(shù)的各位左移,低位補0,高位溢出:a=15,則a=a<<2;后a的值為60即從:0000
1111左移2位后為00111100(3)左移1位相當(dāng)于乘于2(當(dāng)高位不包含0時)第10頁,講稿共21頁,2023年5月2日,星期三12.1.6“按位右移”運算符──>>(1)格式:a>>位數(shù)(2)規(guī)則:使操作數(shù)的各位右移,移出的低位舍棄;高位:1)對無符號數(shù)和有符號中的正數(shù),補0;2)有符號數(shù)中的負數(shù),取決于所使用的系統(tǒng):補0的稱為“邏輯右移”,補1的稱為“算術(shù)右移”。第11頁,講稿共21頁,2023年5月2日,星期三例如:a=017:00001111a>>2為:00000011又如a:10101111a>>2:00101011(邏輯右移)a>>2:11101011(算術(shù)右移)12.1.7位運算賦值運算符a&=b等價于a=a&ba<<=b等價于a=a<<b12.1.8不同長度的數(shù)據(jù)進行位運算不同長度的數(shù)據(jù)進行位運算時系統(tǒng)會自動將長度短的數(shù)據(jù)的高位用0補夠16位(對正數(shù)),若是負數(shù)則高位全部補1第12頁,講稿共21頁,2023年5月2日,星期三12.2位運算舉例例從鍵盤上輸入1個正整數(shù)給int變量num,輸出由8~11位構(gòu)成的數(shù)(從低位、0號開始編號)?;舅悸罚海?)使變量num右移8位,將8~11位移到低4位上。(2)構(gòu)造1個低4位為1、其余各位為0的整數(shù)。(3)與num進行按位與運算。main(){intnum,mask;printf("Inputaintegernumber:");scanf("%d",&num);num>>=8; /*右移8位,將8~11位移到低4位上*/mask=~(~0<<4); /*間接構(gòu)造1個低4位為1、其余各位為0的整數(shù)*/printf("result=0x%x\n",num&mask);} 第13頁,講稿共21頁,2023年5月2日,星期三程序說明:~(~0<<4)按位取0的反,為全1;左移4位后,其低4位為0,其余各位為1;再按位取反,則其低4位為1,其余各位為0。這個整數(shù)正是我們所需要的。例從鍵盤上輸入1個正整數(shù)給int變量num,按二進制位輸出該數(shù)第14頁,講稿共21頁,2023年5月2日,星期三#include"stdio.h"main(){intnum,mask,i;printf("Inputaintegernumber:");scanf("%d",&num);mask=1<<15;/*構(gòu)造1個最高位為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(‘,’); /*四位一組,用逗號分開*/}printf("\bB\n");} 第15頁,講稿共21頁,2023年5月2日,星期三12.3位段
有時,存儲1個信息不必占用1個字節(jié),只需二進制的1個(或多個)位就夠用。如果仍然使用結(jié)構(gòu)類型,則造成內(nèi)存空間的浪費。為此,C語言引入了位段類型。第16頁,講稿共21頁,2023年5月2日,星期三1.位段的概念與定義
所謂位段類型,是一種特殊的結(jié)構(gòu)類型,其所有成員均以二進制位為單位定義長度,并稱成員為位段。例如,CPU的狀態(tài)寄存器,按位段類型定義如下:structstatus{unsignedsign:1; /*符號標志*/unsignedzero:1; /*零標志*/unsignedcarry:1; /*進位標志*/unsignedparity:1; /*奇偶/溢出標志*/unsignedhalf_carry:1; /*半進位標志*/unsignednegative:1; /*減標志*/}flags;第17頁,講稿共21頁,2023年5月2日,星期三顯然,對CPU的狀態(tài)寄存器而言,使用位段類型(僅需1個字節(jié)),比使用結(jié)構(gòu)類型(需要6個字節(jié))節(jié)省了5個字節(jié)。2.說明(1)因為位段類型是一種結(jié)構(gòu)類型,所以位段類型和位段變量的定義,以及對位段(即位段類型中的成員)的引用,均與結(jié)構(gòu)類型和結(jié)構(gòu)變量一樣。(2)對位段賦值時,要注意取置范圍。一般地說,長度為n的位段,其取值范圍是:0~(2n-1)。(3)使用長度為0的無名位段,可使其后續(xù)位段從下1個字節(jié)開始存儲。第18頁,講稿共21頁,2023年5月2日,星期三例如,structstatus{unsignedsign:1; /*符號標志*/unsignedzero:1; /*零標志*/unsignedcarry:1; /*進位標志*/unsigned:0; /*長度為0的無名位段*/unsignedparity:1; /*奇偶/溢出標志*/unsignedhalf_carry:1; /*半進位標志*/ unsignednegative:1; /*減標志*/}flags;第19頁,講稿共21頁,2023年5月2日,星期三原本6個標志位是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東工貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫審定版
- 砂子生產(chǎn)合同范本
- Unit+7+Art+Writing+Workshop+ Reading+Club+知識點及默寫清單 高一英語北師大版(2019)必修第三冊
- 2025年海南外國語職業(yè)學(xué)院單招職業(yè)傾向性測試題庫新版
- 團購車合同范本
- 雇傭管工合同范本
- 2025年02月上半年團省委事業(yè)單位工作人員3人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解-1
- 2025-2030年中國玄武巖行業(yè)發(fā)展?fàn)顩r與投資戰(zhàn)略研究報告
- 2025-2030年中國激光雷達行業(yè)運營狀況及投資前景預(yù)測報告
- 2025-2030年中國涂布白板紙行業(yè)運營狀況及發(fā)展規(guī)模分析報告
- 施工現(xiàn)場5S管理規(guī)范
- 投資學(xué)基礎(chǔ)(第二版)教案全套 李博
- 【MOOC】中級財務(wù)會計-西南交通大學(xué) 中國大學(xué)慕課MOOC答案
- 延續(xù)護理服務(wù)課件
- 2024年濰坊工程職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫
- 【MOOC】斷層影像解剖學(xué)-山東大學(xué) 中國大學(xué)慕課MOOC答案
- 《小學(xué)英語教學(xué)設(shè)計》課件全套 陳冬花 第1-10章 小學(xué)英語教學(xué)設(shè)計概述-小學(xué)英語課堂管理
- 電力線路常見故障培訓(xùn)
- 同等學(xué)力人員申請碩士學(xué)位英語試卷與參考答案(2024年)
- 2024建筑用輻射致冷涂料
- 酒店項目招商引資報告
評論
0/150
提交評論