




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第八章位運(yùn)算
南因號船現(xiàn)代我有技東中芯
2004年5月制作
本章主要內(nèi)容
■c語言既是一種高級語言,廣泛應(yīng)用于應(yīng)用軟
件的開發(fā)和程序設(shè)計(jì),同時(shí)又是一種低級語言,
可以用于系統(tǒng)軟件的開發(fā)和程序設(shè)計(jì),如自動(dòng)
控制系統(tǒng)中的過程控制、參數(shù)檢測、數(shù)據(jù)通訊
等控制程序,都可以綜合利用c語言中的指針
操作、位運(yùn)算和位段技術(shù)來實(shí)現(xiàn)。
本章介紹位運(yùn)算的基本形式和常用運(yùn)算符,并
簡要介紹位段的概念。位運(yùn)算的深入學(xué)習(xí),應(yīng)
該在《計(jì)算機(jī)原理》和《匯編語言程序設(shè)計(jì)》
課程中進(jìn)行。
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
、位運(yùn)算符和位運(yùn)算
■位運(yùn)算概述
所謂“位運(yùn)算”,是指按二進(jìn)制位進(jìn)行運(yùn)算。
?位運(yùn)算的特點(diǎn):運(yùn)算按二進(jìn)制逐位進(jìn)行——沒
有借彳立和接彳立。
“位運(yùn)算量:整型(int,short,unsiged,long)/字
符型(以補(bǔ)碼/ASCII碼形式存儲),不可為實(shí)
型。
?位運(yùn)算符:P298表12.1
&1A???
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
、位運(yùn)算符和位運(yùn)算
位運(yùn)算符還可與賦值運(yùn)算符相結(jié)合,進(jìn)行位運(yùn)
算賦值操作。如:
a&=b等價(jià)于a=a&b
a?=b等價(jià)于a=a?b
■注意:位運(yùn)算時(shí)的數(shù)據(jù)類型為char/int,分析
時(shí)要化為二進(jìn)制形式,但在程序中書寫及輸出
結(jié)果時(shí)仍為char/int。
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
位運(yùn)算符的使用
按位與&(均為1時(shí)方為1)
【例一】計(jì)算
main()010000(a)
&011000(b)
010000
unsignedchara,b;
printf(Tnteraandb:");001010(a)
&010000(b)
u,5
scanf(%o,%o,&a,&b);000000
printf(ua&b=%o\n55,a&b);
)
Enteraandb:20,30Enteraandb:12,20
a&b=20a&b=0
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
位運(yùn)算符的使用
按位或|(均為0時(shí)方為0)
【例二】計(jì)算
main()010000(a)
I011000(b)
011000
unsignedchara,b;
printf(Tnteraandb:");001010(a)
I010000(b)
u,5
scanf(%o,%o,&a,&b);011010
printf(ua|b=%o\n,,,a|b);
)
Enteraandb:20,30Enteraandb:12,20
a|b=30a|b=32
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
位運(yùn)算符的使用
按位異或八(二者相異方為1)
【例三】以下程序的功能是將。數(shù)據(jù)的低4位取反。
#include<stdio.h>
main()計(jì)算
(00111001(a)
unsignedchara=0x39,b=人00001111(b)
a=aAb;00110110
printf("%x\n",a);
答案:OxOf
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
位運(yùn)算符的使用
按位取反~(各位反轉(zhuǎn))
【例四】計(jì)算
main()~a:
(補(bǔ)碼:11111100
chara=3;原碼:10000100
intb=10;?b:
printf(''~a=%d,~b=%d\rT,~a「補(bǔ)碼
)原碼:10001011
結(jié)果:?a=-4,?b=Tl
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
位運(yùn)算符的使用
?左移運(yùn)算?
a?n將a中各位向左移n位,右端補(bǔ)0,高位溢出丟棄。
例:
【例五】以下程序的運(yùn)行結(jié)果是_____O
main()
(
unsignedinta=0x3ef,b;
b=a?2;
printf("%x,%x\n",a,b);
}
A)3ef,fbB)3ef,fbcC)fbc,3efD)fbc,fbc
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
位運(yùn)算符的使用
■左移運(yùn)算?
計(jì)算
【例六】以下程序的運(yùn)行結(jié)5已知:0x1f5為111110101
main()且:Ta為1100
???2<<3為1100000
inta=12,b;111110101
b=0x1f5&a?3;&001100000
printf("%d,%d\n"Ja,b);
}001100000=96
結(jié)果:12,96
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
位運(yùn)算符的使用
■右移運(yùn)算?
a?n將a中各位右移n位,溢出則舍棄。
左端----
?a為正數(shù)時(shí)(符號位為0),填0;
aa為負(fù)數(shù)時(shí)(符號位為1),填?;蛱?與系統(tǒng)有關(guān)
填0(邏輯右移)
填1(算術(shù)右移)TC使用算術(shù)右移
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
位運(yùn)算符的使用
?右移運(yùn)算?
【例七】以下程序的運(yùn)行結(jié)果是_____
main()
(
inta=9,b=-9;
printf("%d,%d",a?2,b?2);
}
結(jié)果:2,-3
(-9的補(bǔ)碼:1111111111110111,
右移后為1111111111111101)o
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
應(yīng)用示例
①從整數(shù)a最右端am=10n=3
[「IITIIIIllIIII[III
第m個(gè)位置開始[15|14|13|12|10|9|817|6|5|4|3|2|“0|
取該位開始右面b=a?(10-3+1)S!a?8
n位。jo|。|o|o|o|o|o|0I15I14I13I12I11I10I9|8|
算法如下:
-O?3
b=a?(m-n+1)I」「I」V「1”T”「I”。1。1。1
c=~(~O?n)c=*(*O?n)=~(*O?3)
_L------1
d=b&c「0|0|0|U|0巨|0|0|0|0|0|0|011I1I1I
注:位自右向左d=b&c
從0開始編號|o|o|o|o|o|o|o|o|o|o|o|u|u|io|9|8|
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
應(yīng)用示例
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
二、位段
c語言允許在一個(gè)結(jié)構(gòu)體中以位為單位來指定
其成員所占內(nèi)存長度。這種以位為單位的成員
稱為“位段”。
莆田學(xué)院現(xiàn)代教育技術(shù)中心2004年5月
示例
structdata
(
inti;/*非位段*/
unsignedinta:3;/*占3位*/
unsignedintb:5;/*占5位*/
unsignedint:3;/*無
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 煤礦懸臂支架支護(hù)方案
- 小區(qū)綠化經(jīng)營方案
- 日資企業(yè)調(diào)薪方案
- 物資配料到位方案
- 銀行報(bào)廢資產(chǎn)處置方案
- 超市消防疏散應(yīng)急方案
- 企業(yè)消防演練方案文案
- 站臺施工組織方案
- 企業(yè)社保推行方案
- 2025年綜合類-交通運(yùn)輸管理-水路運(yùn)輸歷年真題摘選帶答案(5卷100題)
- 血管病的早期病情評估和治療
- 全科門診教學(xué)知情同意書
- 2023年江西工程職業(yè)學(xué)院教師招聘考試歷年真題庫
- 車險(xiǎn)查勘禮儀與服務(wù)規(guī)范
- 螺釘螺栓扭力標(biāo)準(zhǔn)
- 淘寶客服月度工作報(bào)表表格
- 發(fā)電機(jī)用柴油機(jī)說明書
- 中建施工現(xiàn)場CI規(guī)范說明詳細(xì)
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院組織架構(gòu)圖
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)教程(Windows10+Office2016)PPT全套完整教學(xué)課件
- 電網(wǎng)檢修工程預(yù)算定額
評論
0/150
提交評論