整型常量的表示方法:
(1)二進(jìn)制數(shù):由0和1組成
10101=12^0+021+1*22+02^3+12^4
(2) 八進(jìn)制數(shù):由0~7組成的泻帮,八進(jìn)制數(shù)開(kāi)頭是數(shù)字0,以區(qū)分八進(jìn)制數(shù)
0345 0123 0765 0765
(3)十六進(jìn)制數(shù):由數(shù)字09和字母af或者A~F組成皮迟,并且以0x開(kāi)頭。
0x123 0xab34
(4)二進(jìn)制數(shù):1111
十進(jìn)制數(shù):8421 8+4+2+1=15
111 4+2+1=7
(5)10101011:171(十進(jìn)制),0253(八進(jìn)制)泡仗,0xab
十六進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制 16^(n-1)
八進(jìn)制轉(zhuǎn)十進(jìn)制 8^(n-1)
(6)位操作
&:位與
將十進(jìn)制數(shù),八進(jìn)制數(shù)或十六進(jìn)制數(shù)轉(zhuǎn)化為二進(jìn)制數(shù)猜憎,進(jìn)行位與運(yùn)算娩怎!
|:位或
int main()
{
int num;
num=4|3;
printf("4|3=%d\n" num);
return 0;
}
~:非(取反) //計(jì)算機(jī)是補(bǔ)碼存儲(chǔ),原碼輸出
原碼:正數(shù)的原碼是其本身胰柑,負(fù)數(shù)的原碼是在正數(shù)原碼的基礎(chǔ)上符號(hào)位為1
反碼:正數(shù)的反碼是其本身截亦,負(fù)數(shù)的反碼是在其原碼的基礎(chǔ)上符號(hào)位不變,其他位按位取反
補(bǔ)碼:正數(shù)的補(bǔ)碼是其本身柬讨,負(fù)數(shù)的補(bǔ)碼是在其正數(shù)的原碼基礎(chǔ)上崩瓤,符號(hào)位不變,其余各位取反然后加1踩官,即反碼加1
23: 0001 0111
~23:1110 1000(補(bǔ)碼)
反碼:1110 0111
原碼:1001 1000
^ : 異或
4^7=
0100
^0111
…………
0011
<<: 左移
8<<2 即把八轉(zhuǎn)換為二進(jìn)制數(shù) 1000
100000
8*2^2=32 左移多少位就乘以2的多少次方
>>: 右移
與左移互逆
8>>2=2
賦值操作符
賦值號(hào): =
+=
num+=i; ------> num=num+i
-=
*=
<<=
%=
&=
4.邏輯運(yùn)算符和條件運(yùn)算符
(1)邏輯運(yùn)算符
&&:邏輯與
表達(dá)式1 && 表達(dá)式2
當(dāng)表達(dá)式1和表達(dá)式2同為真時(shí)却桶,結(jié)果為真
||:邏輯或
表達(dá)式1 || 表達(dá)式2
當(dāng)表達(dá)式1和表達(dá)式2有一個(gè)位真時(shí),結(jié)果為真
!:非
颖系!表達(dá)式1
若表達(dá)式為真嗅剖,結(jié)果為假,
若表達(dá)式為假嘁扼,結(jié)果為真信粮,
(2)條件運(yùn)算符
?:
表達(dá)式1偷拔?表達(dá)式2:表達(dá)式3
若表達(dá)式1為真蒋院,執(zhí)行表達(dá)式2,表達(dá)式1為假莲绰,執(zhí)行表達(dá)式3
a>b?a:b
a,b,c 取最大值
a>b?(a>c?a:c):(b>c?b:c)
++i,--i,i--
運(yùn)算優(yōu)先級(jí)
括號(hào)成員第一欺旧,全體單目第二,乘除余第三蛤签,加減第四辞友;位移第五,關(guān)系第六震肮,等不等於第七称龙;
位與,異或和位或八九十戳晌,
邏輯或和與第十二和第十一鲫尊,
條件高于賦值,逗號(hào)運(yùn)算最低沦偎。
c語(yǔ)言的三大結(jié)構(gòu)
順序結(jié)構(gòu)疫向,分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)
1.分支結(jié)構(gòu)
(1) if(表達(dá)式)
{......}
表達(dá)式為真則執(zhí)行{}里的語(yǔ)句豪嚎;
(2)if else
(3)多重
(4)if else 嵌套使用
在if的{}里面定義的變量搔驼,只能在{}中使用,在{}之外無(wú)效3扪I嗾恰!
switch...case:
(1) switch(option)
{
case option1:
break;
case option2:
break;
default:
break;
}
根據(jù)option的值選擇性執(zhí)行case語(yǔ)句扔字,若沒(méi)有與之對(duì)應(yīng)的case語(yǔ)句囊嘉,執(zhí)行default語(yǔ)句。
*注意事項(xiàng):default語(yǔ)句switch{}里的任意位置革为;
case語(yǔ)句后的大括號(hào)是可以省略的哗伯,超過(guò)三條建議加上!篷角!
break視情況而定是否寫(xiě)焊刹,若case語(yǔ)句無(wú)break,則順次執(zhí)行所有的case語(yǔ)
句直到把case語(yǔ)句執(zhí)行完畢,退出switch
循環(huán)結(jié)構(gòu)
while() do{}while() for(;;)
1.while(表達(dá)式)
{
循環(huán)體
}
先判斷條件是否滿足執(zhí)行條件虐块,滿足則執(zhí)行循環(huán)體俩滥,每執(zhí)行一次循環(huán)體,進(jìn)行一次條件判斷贺奠,不滿足則退出循環(huán)霜旧。
break/continue
break:
跳出當(dāng)前循環(huán)
continue
跳過(guò)當(dāng)前循環(huán),進(jìn)行下一次循環(huán)
do{}while()
do
{
//循環(huán)體
}while(表達(dá)式)儡率;//while循環(huán)沒(méi)有分號(hào)
先執(zhí)行后判斷
for(;;)
for(表達(dá)式1挂据;表達(dá)式2;表達(dá)式3)
{
//循環(huán)體儿普;
}
表達(dá)式1:
循環(huán)條件初始化
表達(dá)式2:
循環(huán)結(jié)束條件或循環(huán)執(zhí)行條件
表達(dá)式3:
循環(huán)步長(zhǎng)或者變量值的更新
注:表達(dá)式1崎逃,2,3可以任意省略
但是眉孩,“个绍;;”不可省略@送簟0褪痢!K涝狻9慊帧!Q教丁6っ浴!N铣蕖E衽啤KLせ谩!