雙目運算子:
/(取整)
%(取餘):只能用於整型運算中
單目運算子:
a++ a = a+1
++a當a++ 和++a前出現'='或者在printf中時或者在運算中時,兩者產生區別
(本質就是當a++或者++a需要將值賦予它人時會產生如下現象)
int b;
b = a++; b = a, a = a+1; 先賦值,後運算
b = ++a; a = a+1,b = a; 先運算,後賦值
int a = 10;
b = a++ + ++a + a++;
錯誤:c語言中不能再同一句語句中對同一片空間進行反覆修改,會出錯.
關係運算子:多用於邏輯判斷與分支迴圈語句連用
==: 與'='符號區分
關係運算子運算是有結果的,結果就是bool型別的值
邏輯運算子:
&&:邏輯與
表示式1 && 表示式2
1 1 1
0 1 0
1 0 0
0 0 0
特性:1.與0與為0,與1與不變
2.逢0截止,判斷表示式1是否成立,如果成立需要繼續判斷表示式2,但如果表示式1已經不成立,則無需判斷
表示式2
||:邏輯或
表示式1 || 表示式2
1 1 1
1 0 1
0 1 1
0 0 0
特性:1.與1或為1,與0或不變
2.逢1截止
!:邏輯反 !250 == 0 !0 == 1
位運算子: 本質是對資料的補碼進行運算操作,按bit操作
~:按位取反
unsigned char a = 0x17
0001 0111
1110 1000 0xe8
注意!有符號數按位取反(&或者|或者^),符號位該怎麼變就怎麼變
-10原:1 000 1010
反:1 111 0101
補:1 111 0110
~ -10
0 000 1001 9
&:按位與 與0與為0,與1與不變
x = 0126 y= 0xac
x: 0 0101 0110
y: 1010 1100
0000 0100 0x4
|:按位或
x = 076 y = 0x89
x: 0011 1110
y: 1000 1001
1011 1111 0xbf
^:按位異或 相同為0 相異為1
x = 75 y = 0123
x: 0100 1011
y: 0101 0011
0001 1000 0x18
>> 算術右移 需要考慮符號位(歸還符號位) 移n位 正數高位補n個0 ,負數高位補n個1
格式:量 移位運算子 偏移量
unsigned char b = 0xe4
1110 0100 << 3
111 0 0100000
0010 0000 0x20
0000 0100 << 1
0000 1000
0000 0100 >> 1
0000 0010
注:在取值範圍內,左移移位擴大兩倍,右移一位縮小兩倍
-101 111 0110 補
-10 << 4
0 110 0000 96
-10 >> 1
1 1111 011
-10 >> 2
11 111101
特殊運算子:
, (逗號):
int x
x = (表示式1,表示式2,表示式3);
則最終x的結果為最後乙個逗號後的表示式的運算結果
? (條件運算子)
三目運算子:
表示式1 ? 表示式2 : 表示式3
判斷表示式1是否成立,成立輸出表示式2的結果 如果不成立輸出表示式3的結果
例如:用巨集實現比較兩個數的大小輸出較小的哪乙個
#define min(x,y) ((x > y) ? (y) : (x))
sizeof:用於計算資料型別大小
sizeof(資料型別或者變數名)
運算子的優先順序問題:不確定的時候~使用括號很重要!
重點問題:
位清零和置一:
unsigned char a = 0000 1010
清0: 0000 1000 a & ~(1 << 1)
1111 1101
~ (1 << 1) 0000 0010
需要將第n位清0時,只需將該數值按位與上 ~(1<< n-1)
置1: 0000 1110 | 0000 0001 << 2
a | 1 << 2
需要將第n位置1時只需按位或上 1 << n-1位
兩數交換的方法:
int a = 10,b = 13;
1.中間變數 int c c = a,a = b,b = c;
2.算術交換 a = a+b b = a-b a = a-b 注:此法a+b不能超過a的資料型別
3.異或交換 a = a^b b = a^b a = a^b 注:a和b不能相等
移動開發第三天
rem root em 是乙個相對單位,類似於em,em相對于父元素的字型大小 rem基準是相對於html的字型大小 media mediatype and not only media feature mediatype 查詢型別 all 用於所有裝置 print 用於印表機和列印預覽screen...
封閉開發12天 第三天
2009 5 13 兩個字代表我們整個團隊所有人員感覺 疲憊!沒了第一天的新鮮,沒了第二天的熱鬧,全部被研發任務淹沒!部分人感冒了,乙個同事壞肚子了。用lwuit 做了乙個帶進度條的閃屏,要基於 lwuit 的瀏覽器有好多的困難 繼續嘗試中 太累了 估計再過兩天就適應這種研發節奏,就會好些。院裡領導...
C 學習第三天
一些基礎就可以略過了,看書不能太呆板。如果把一本書看完了,剩下的就是在實際專案中進行整合,訓練,然後整理成筆記。每天敲點程式,記點筆記。變數作用域 include include include std string s1 hello 全域性int main 結果 hello world 42 wo...