補(bǔ)充內(nèi)容:
基本數(shù)據(jù)類型轉(zhuǎn)化
5/3=1
(1)隱式轉(zhuǎn)化:
float _f=int t/int _t1
賦值號(hào)兩邊不同時(shí)求晶,自動(dòng)轉(zhuǎn)化為精度較高的類型
(2)顯式轉(zhuǎn)化:
float_f = (float)int_t/int_t1
強(qiáng)制類型轉(zhuǎn)化中符,并不改變變量的類型,只做一次臨時(shí)轉(zhuǎn)化
一誉帅、位運(yùn)算符
1淀散、基本運(yùn)算符
&:位與
//將10進(jìn)制數(shù),8進(jìn)制數(shù)蚜锨,16進(jìn)制數(shù)轉(zhuǎn)化為2進(jìn)制數(shù)档插,進(jìn)行位與運(yùn)算,
對(duì)應(yīng)位同時(shí)為1時(shí)亚再,結(jié)果為1郭膛,否則為0!7招则剃!
一假則假
0100
& 0011
0000
12&7=4
1100
& 0111
0100```
|:位或 //一真則真
``` 4|3=7
0100
| 0011
-------------
0111
13|9=13
1101
| 1001
--------------
1101
023|5=23
010110
| 0101
---------------
10111```
~:非(取反)
``` ~23:
~(0001 0111)
----------------------------
0000 1000 ```
計(jì)算機(jī)是補(bǔ)碼存儲(chǔ)的,原碼輸出H缤薄棍现!
原碼:正數(shù)的原碼是其本身
反碼:符號(hào)位不變,其他位按位取反
補(bǔ)碼:負(fù)數(shù)的補(bǔ)碼是其正數(shù)的原碼取反加1
``` ~0001 0111
取反之后為:1110 1000//補(bǔ)碼
1110 0111//反碼
1001 1000//原碼 ```
^:異或 ://不同為1镜遣,相同為0
``` 4^7=3
0100
0111
==============
0011```
<<:左移 轉(zhuǎn)化為二進(jìn)制己肮,左移兩位,低位補(bǔ)0悲关;
``` 8<<3=64 //8*2^3=64
<< 0000 1000
-----------------------
0100 0000
:右移----與左移互相逆
16>>3=2
(1)二進(jìn)制:由0和1組成谎僻,
10101(2)=21(10);
(2)8進(jìn)制數(shù):由0~7組成寓辱,八進(jìn)制開頭是數(shù)字0艘绍,以區(qū)分八進(jìn)制數(shù)和十進(jìn)制
0345 0123 0765
(3)由數(shù)字0~9和字母a~f或者A~F組成,并且秫筏,以0x開頭
0x123 oxab34
(4)進(jìn)制數(shù)轉(zhuǎn)換
2诱鞠、&:位與
//將10進(jìn)制數(shù),8進(jìn)制數(shù)跳昼,16進(jìn)制數(shù)轉(zhuǎn)化為2進(jìn)制數(shù)般甲,進(jìn)行位與運(yùn)算,
對(duì)應(yīng)位同時(shí)為1時(shí)鹅颊,結(jié)果為1敷存,否則為0!!锚烦!
一假則假
4&3 =0
0100
& 0011
0000
12&7=4
1100
& 0111
0100
|:位或 //一真則真
4|3=7
0100
| 0011
-------------
0111
13|9=13
1101
| 1001
--------------
1101
023|5=23
010110
| 0101
---------------
10111
~:非(取反)
~23:
~(0001 0111)
0000 1000
計(jì)算機(jī)是補(bǔ)碼存儲(chǔ)的觅闽,原碼輸出!涮俄!
原碼:正數(shù)的原碼是其本身
反碼:符號(hào)位不變蛉拙,其他位按位取反
補(bǔ)碼:負(fù)數(shù)的補(bǔ)碼是其正數(shù)的原碼取反加1
~0001 0111
取反之后為:1110 1000//補(bǔ)碼
1110 0111//反碼
1001 1000//原碼
^:異或 ://不同為1,相同為0
4^7=3
0100
0111
0011
<<:左移 轉(zhuǎn)化為二進(jìn)制彻亲,左移兩位孕锄,低位補(bǔ)0;
8<<3=64 //8*2^3=64
<< 0000 1000
0100 0000
:右移----與左移互相逆
16>>3=2
2苞尝、賦值操作符
+=畸肆,num+=i ; //num=num+i;
-=,
*=宙址,
/=,
%=,
&=,
|= ,
>>= ,
<<=,```
3轴脐、邏輯運(yùn)算符和條件運(yùn)算符
(1)邏輯運(yùn)算符 //成立返回1,不成立返回0抡砂;若條件1可得出結(jié)果大咱,屏蔽后續(xù)運(yùn)算。
```&&:邏輯與
表達(dá)式1&&表示式2 //當(dāng)表達(dá)式1和2同時(shí)為真注益,結(jié)果為真```
| |:邏輯或
表達(dá)式1||表示式2 //表達(dá)式1和表達(dá)式2碴巾,一真則真
!:非
聊浅!表達(dá)式1 //表達(dá)式為真餐抢,結(jié)果為假
//表達(dá)式為假,結(jié)果為真
(2)條件運(yùn)算符
``` 低匙?:
表達(dá)式1?表達(dá)式2:表達(dá)式3 //若表達(dá)式1為真碳锈,則執(zhí)行表達(dá)式2顽冶,否則執(zhí)行表達(dá)式3```
a>b?a:b
a>b?(a>c?a;c):(b>c?b:c)
++i; --i //單目運(yùn)算符
+售碳,-//雙目運(yùn)算符
强重?://三目運(yùn)算符
5、運(yùn)算符優(yōu)先級(jí) //簡(jiǎn)單方法贸人;確定不了间景,就用“()”
括號(hào)成員第一,全體單目第二艺智,乘除余三倘要,加減四;
位移五十拣,關(guān)系六封拧,等與不等排第七志鹃;
位與,異或和位或八九十泽西;
邏輯或和與十二與十一曹铃;
條件高于賦值,逗號(hào)運(yùn)算符最低
###二捧杉、C語言三大結(jié)構(gòu)
順序結(jié)構(gòu)陕见,分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)味抖;
1评甜、分支機(jī)構(gòu)
```(1)if(表達(dá)式) //注意if()后無“;”
{...} //表達(dá)式為真則執(zhí)行{...}內(nèi)的非竿,為假不執(zhí)行
(2)if …..else
(3)多重if
else
if
else
…
(4)
(5)使用if注意事項(xiàng)
80<num<=90 //錯(cuò)誤
num>80&&num<=90 //正確```
if條件句后面只有一條語句時(shí)蜕着,可以不加{},語句不能為變量聲明語句红柱。//變量只能在if中使用變量承匣。
例子:if
```If(1)
printf(“hello\n”);
printf(“world!\n”);```
說明:if的有效語句只能是if后面第一句,
在if(){ 〈盖摹}中定義的變量韧骗,只能在{ }中使用零聚,在{∨郾}之外無效!Aブⅰ政模!
2. switch….case
(1)
switch(option)
{
case option1;
break;
case option2;
break;
…...
default:
break;
}
根據(jù)option的值,選擇性的執(zhí)行case語句蚂会,若沒有與之對(duì)應(yīng)的case語句淋样,則執(zhí)行default語句!
(2)注意事項(xiàng)
default可放{}任意位置
case語句后的{}可以省略不謝胁住,當(dāng)case語句超過3條趁猴,建議加上{}!1爰儡司!
(3)case中的break視情況而定,是否寫.若case語句無break,則順序執(zhí)行所有的case語句余指,知道把case語句執(zhí)行完捕犬,退出switch
###三、循環(huán)結(jié)構(gòu)
while() do…...while…… for(;;)
1、
while(表達(dá)式) //先判斷后執(zhí)行
{
//執(zhí)行語句
}```
先判斷條件是否滿足執(zhí)行條件或听,滿足則執(zhí)行循環(huán)體探孝,不滿足則退出循環(huán)。
若條件滿足則執(zhí)行循環(huán)體誉裆,每執(zhí)行一次循環(huán)體顿颅,則進(jìn)行一次循環(huán)判斷
2、break/continue
break:跳出當(dāng)前循環(huán)
continue:結(jié)束本次循環(huán)足丢,進(jìn)入下次循環(huán)```
3粱腻、do{}while{}
do
{
//循環(huán)體
}while(表達(dá)式);
現(xiàn)執(zhí)行后判斷
4斩跌、for 循環(huán)
for(表達(dá)式1绍些;表達(dá)式2;表達(dá)式3)
{
//循環(huán)體
}
表達(dá)式1:循環(huán)條件初始化
表達(dá)式2:循環(huán)結(jié)束條件耀鸦,循環(huán)執(zhí)行條件
表示式3:循環(huán)步長(zhǎng)柬批,變量值的更新
注:表達(dá)式1、2袖订、3氮帐,可以部分或全部省略,但是“洛姑;上沐;”不能省略!!!
##總結(jié):今天的課程理解沒有問題,書寫規(guī)則問題不大楞艾。只是對(duì)于算法的應(yīng)用還不夠到位---即靈活使用的程度還不夠参咙,今天的作業(yè)還有一些疑點(diǎn),正在解決硫眯。
##疑問和難點(diǎn):靈活的使用算法蕴侧,調(diào)用各種庫(kù)函數(shù),和自己編寫庫(kù)函數(shù)并調(diào)用的能力還不夠两入,需要盡快學(xué)起來戈盈。