国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

表達式和基本語句與位運算

2019-11-11 01:25:38
字體:
供稿:網(wǎng)友


表達式和基本語句

 

①if語句 (分支:單分支、雙分支、多分支)

if 語句是C 語言中最簡單、最常用的語句,然而很多程序員用隱含錯誤的方式寫if語句;

布爾變量與零值比較、整型變量與零值比較、浮點變量與零值比較、指針變量與零值比較

 

②while,for語句

C++/C 循環(huán)語句中,for 語句使用頻率最高,while語句其次,do語句很少用。

在多重循環(huán)中,如果有可能,應當將最長的循環(huán)放在最內(nèi)層,最短的循環(huán)放在最外層,以減少CPU跨切循環(huán)層的次數(shù);

如果循環(huán)體內(nèi)存在邏輯判斷,并且循環(huán)次數(shù)很大,宜將邏輯判斷移到循環(huán)體的外面;

 

③switch開關語句

switch語句可以產(chǎn)生具有多個分支的控制流程。

   它的格式是:

      switch(控制表達式)

     {

         case常量表達式:語句列表

         case常量表達式:語句列表

          ...

        default:語句列表

     }

每個case語句的結(jié)尾不要忘了加break,否則將導致多個分支重疊(除非有意使多個分支重疊);

不要忘記最后那個default分支。即使程序真的不需要default處理,也應該保留語句 default : break;這樣做并非多此一舉,而是為了防止別人誤以為你忘了default處理。

 

④goto語句(流程轉(zhuǎn)向)

由于goto語句可以靈活跳轉(zhuǎn),如果不加限制,它的確會破壞結(jié)構(gòu)化設計風格。其次,goto語句經(jīng)常帶來錯誤或隱患。它可能跳過了某些對象的構(gòu)造、變量的初始化、重要的計算等語句.

 

 

位運算及其運算符

①按位與──& (1)格式:x&y (2)規(guī)則:對應位均為1時才為1

 (3)主要用途:取(或保留)1個數(shù)的某(些)位,其余各位置0。

②按位或──|   (1)格式:x|y   (2)規(guī)則:對應位均為0時才為0,否則為1

   (3)主要用途:將1個數(shù)的某(些)位置1,其余各位不變。

 

③按位異或──^

(1)格式:x^y

(2)規(guī)則:對應位相同時為0,不同時為1:3^9=10。

(3)主要用途:使1個數(shù)的某(些)位翻轉(zhuǎn)(即原來為1的位變?yōu)?,為0的變?yōu)?),其余各位不變。

 

④按位取反──~

(1)格式:~x

(2)規(guī)則:各位翻轉(zhuǎn),即原來為1的位變成0,原來為0的位變成1:在IBM-PC機中,~0=0xffff,~9=0xfff6。

(3)主要用途:間接地構(gòu)造一個數(shù),以增強程序的可移植性。

 

⑤按位左移──<<

(1)格式:x<<位數(shù)

(2)規(guī)則:使操作數(shù)的各位左移,低位補0,高位溢出:5<<2=20。

 

⑥按位右移──>>

(1)格式:x>>位數(shù)

(2)規(guī)則:使操作數(shù)的各位右移,移出的低位舍棄;高位:

1)對無符號數(shù)和有符號中的正數(shù),補0;

2)有符號數(shù)中的負數(shù),取決于所使用的系統(tǒng):補0的稱為“邏輯右移”,補1的稱為“算術右移”。例如,20 >> 2=5。

說明:

(1)x、y和“位數(shù)”等操作數(shù),都只能是整型或字符型數(shù)據(jù)。除按位取反為單目運算符外,其余均為雙目運算符。

(2)參與運算時,操作數(shù)x和y,都必須首先轉(zhuǎn)換成二進制形式,然后再執(zhí)行相應的按位運算。

(3)實現(xiàn)&、|、^運算主要用途的方法

   1)構(gòu)造1個整數(shù):該數(shù)在要?。ɑ虮A簦┑奈?、或要置1的位、或要翻轉(zhuǎn)的位上為1,其余均為0。

   2)進行按位與、或按位或、或按位異或操作。

(4)實現(xiàn)按位取反主要用途的方法

   1)求~0,間接地構(gòu)造一個全1的數(shù);

   2)按需要進行左移或右移操作,構(gòu)造出所需要的數(shù)。

 

復合賦值運算符

除按位取反運算外,其余5個位運算符均可與賦值運算符一起,構(gòu)成復合賦值運算符:&=、|+、^=、<<=、>>=

 

不同長度數(shù)據(jù)間的位運算──低字節(jié)對齊,短數(shù)的高字節(jié)按最高位補位:

(1)對無符號數(shù)和有符號中的正數(shù),補0;

(2)有符號數(shù)中的負數(shù),補1。

 

位段的概念與定義    所謂位段類型,是一種特殊的結(jié)構(gòu)類型,其所有成員均以二進制位為單位定義長度,并稱成員為位段。

 

說明

(1)因為位段類型是一種結(jié)構(gòu)類型,所以位段類型和位段變量的定義,以及對位段(即位段類型中的成員)的引用,均與結(jié)構(gòu)類型和結(jié)構(gòu)變量一樣。

(2)對位段賦值時,要注意取置范圍。一般地說,長度為n的位段,其取值范圍是:0~(2n-1)。

(3)使用長度為0的無名位段,可使其后續(xù)位段從下1個字節(jié)開始存儲。

 

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新源县| 双峰县| 固镇县| 林州市| 尤溪县| 环江| 平阴县| 龙南县| 繁峙县| 仁布县| 东乡县| 黄龙县| 开阳县| 呈贡县| 三河市| 城固县| 绥宁县| 新民市| 大埔区| 美姑县| 湘潭市| 新民市| 博白县| 寻甸| 辉县市| 永兴县| 扎赉特旗| 文化| 阿巴嘎旗| 定安县| 田东县| 昭通市| 甘泉县| 高雄县| 雷州市| 泰州市| 崇信县| 开封县| 昌江| 彭泽县| 金堂县|