九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > PPT文檔下載  

C語言程序設計-提高篇-第4章位運算.ppt

  • 資源ID:11495390       資源大?。?span id="24d9guoke414" class="font-tahoma">233.50KB        全文頁數:39頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

C語言程序設計-提高篇-第4章位運算.ppt

C語言程序設計提高篇,第4章位運算,內容概述,位運算操作位段的概念,教學目標,字節(jié)和位的有關概念;正確使用常見的位運算符和位運算操作;牢記位段的要領及位段的使用方法。,C語言既是一種高級語言,廣泛應用于應用軟件的開發(fā)和程序設計,同時又是一種低級語言,可以用于系統(tǒng)軟件的開發(fā)和程序設計,如自動控制系統(tǒng)中的過程控制、參數檢測、數據通訊等控制程序,都可以綜合利用C語言中的指針操作、位運算和位段技術來實現。本章介紹位運算的基本形式和常用運算符,并簡要介紹位段的概念。位運算的深入學習,應該在計算機原理和匯編語言程序設計課程中進行。,位運算概述所謂“位運算”,是指按二進制位進行運算。位運算的特點:運算按二進制逐位進行沒有借位和進位。位運算量:整型(int,short,unsiged,long)/字符型(以補碼/ASCII碼形式存儲),不可為實型。,4.1位運算符和位運算,位運算符(BitwiseOperators),位運算符還可與賦值運算符相結合,進行位運算賦值操作。如:aprintf("Enteraandb:");scanf("%d,%d",計算010000(a)0|1=1;1|0=1;1|1=1;用法按位定值為1,例2#includevoidmain()unsignedchara,b;printf("Enteraandb:");scanf("%o,%o",Enteraandb:20,30a|b=30,Enteraandb:12,20a|b=32,計算010000(a)|011000(b)011000001010(a)|010000(b)011010,按位異或(BitwiseExclusiveOR,XOR),運算規(guī)則00=0;01=1;10=1;11=0;說明相“異”則為1,相“同”則為0,例3以下程序的功能是將a數據的低4位取反。#includevoidmain()unsignedchara=0 x39,b=;a=ab;printf("%xn",a);,答案:0 x0f,計算00111001(a)00001111(b)00110110,與0相異或,保持原值不變與自身相異或,則全部位清零交換兩個整數值a=ab;b=ba;a=ab;,交換兩個整數值不用臨時變量,#includevoidmain()inta=3,b=4;a=ab;b=ba;a=ab;printf(“a=%db=%dn",a,b);結果:a=4b=3,按位取反(OnesComplement),運算規(guī)則0=1;1=0;用法所有位翻轉獲得適用于不同系統(tǒng)的位運算模板,例4#includevoidmain()inta=32767;intb=a;printf("a=%d,b=%dn",a,b);,結果:a=32767,b=-32768,計算a:原碼:0111111111111111b:補碼:1000000000000000,左移(LeftShift),運算規(guī)則i<<n把i各位全部向左移動n位最左端的n位被移出丟棄最右端的n位用0補齊用法若沒有溢出,則左移n位相當于乘上2n運算速度比真正的乘法和冪運算快得多,例5以下程序的運行結果是60。#includevoidmain()unsignedinta=15,b;b=a<<2;printf("%d,%dn",a,b);,例6以下程序的運行結果是。#includevoidmain()inta=12,b;b=0 x1f5,結果:12,96,計算已知:0 x1f5為111110101且:a為1100a<>n把i各位全部向右移動n位最右端的n位被移出丟棄最左端的n位用0補齊(邏輯右移)或最左端的n位用符號位補齊(算術右移)用法右移n位相當于除以2n,并舍去小數部分運算速度比真正的除法和冪運算快得多,例7以下程序的運行結果是4,5。#includevoidmain()inta=16,b=20;printf("%d,%d",a>>2,b>>2);,應用示例,從整數a最右端第m個位置開始取該位開始右面n位。算法如下:b=a>>(m-n+1)c=(0<nc=c|b,例8:將16進制短整數按二進制打印輸出輸入:F1E2輸出:1111000111100010輸入:13A5輸出:0001001110100101,算法思想:從高位到低位逐位測試每一位是0或是1??身槾卧O置屏蔽字分別為1000000000000000、0100000000000000、0000000000000001,與該數進行shorta;scanf("%X",C語言允許在一個結構體中以位為單位來指定其成員所占內存長度。這種以位為單位的成員稱為“位段”。,4.2位段,位段的概念,1.位段的含義位段是以位為單位定義長度的結構體類型中的成員.2、位段的構成例如:structpackunsigneda:2;unsignedb:6;unsignedc:8;intx;data;這個結構體類型的變量在內存中的情況為:,也可以使各個字段不恰好占滿一個字節(jié)structpackunsigneda:2;unsignedb:6;unsignedc:4;intx;data;則內存中的分配形式為:此處:a,b,c共占2個字節(jié)中的12位,空閑4位,int型的x從一個新的字節(jié)開始.,對位段中數據的引用方法,1、方法:通過結構體成員來應用:如:data.a=2;data.b=6;2、要點:注意每個字段的最大取值范圍.如:data.a的取值只能是:03,因為兩位二進制最大表示的數為3.,1.若某個位段要從新的存儲單元開始,可以這樣定義:structpackunsigneda:2;unsigned:0;unsignedb:4;unsignedc:4;intx;data;注意:長度為0的位段的作用是使下一個位段的內容從新的存儲單元開始存放。,位段的使用要點,位段的使用要點,2.一個位段存儲在同一個機器字中,不能跨字存儲.如下面的定義是錯誤的(假設機器的字長為16位)structpackunsigneda:2;unsignedb:5;unsignedc:10;unsignedd:4;intx;data;,3.可以定義無名字段structpackunsigneda:2;unsigned:5;/*空閑不用*/unsignedb:2;unsignedc:4;intx;data;,位段的使用要點,4.位段可以用十進制的整型形式輸出,也可以用其他的整型格式輸出(如八進制,十六進制和無符號),位段以整型的形式參加算術運算.分析下面的程序:例9:voidmain()structpackunsigneda:2;unsignedb:3;unsignedc:1;unsignedd:4;unsignede:3;unionstructpackqp;unsignedi;abc;abc.i=255;printf(“%dn”,abc.qp.d);,位段的使用要點,例10:分析下列程序的輸出結果#defineN2#defineCUBE(X)(X*X*X)#includevoidmain()inti=N+2;i=CUBE(i);printf("%dn",i);,運行結果為:64,例11:下列程序的輸出結果是什么?#includevoidmain()structequipunsigneda:2;unsignedb:3;unsignedc:1;unsignedd:4;unsignede:3;unsigned:3;unionstructequipeq;unsignedi;abc;abc.i255;printf(“%dn",abc.eq.d);,運行結果為:3,習題4.1編寫一個函數getbits,從一個16位的單元中取出某幾位(即該幾位保留原值,其余位為0)。函數調用形式為getbits(value,n1,n2)。value為該16位(兩個字節(jié))中的數據值,n1為欲取出的起始位,n2為欲取出的結束位。如:getbits(0101675,5,8)表示對八進制101675這個數,取出它的從左面起第5位到第8位。,4.2寫一函數,對一個16位的二進制數取出它的奇數位(即從左邊起第1、3、5、15位)。4.3編一程序,檢查一下你所用的計算機系統(tǒng)的C編譯在執(zhí)行右移時是按照邏輯位移的原則還是按算術右移原則?如果是邏輯右移,請你編一函數實現算術右移?如果是算術右移,請編寫一函數以實現邏輯右移。,4.4編一函數用來實現左右循環(huán)移位。函數名為move,調用方法為move(value,n)其中value為要循環(huán)位移的數,n為位移的位數。如n0表示為左移;n0為右移。如n=4,表示要右移4位;n=-3,為要左移3位。,

注意事項

本文(C語言程序設計-提高篇-第4章位運算.ppt)為本站會員(tia****nde)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!