1.C語言取余注意事項:%
a.求余、模運算符(%)時要求兩數必須是整型數據。
b.取余的結果,是取決於被除數 (不管除數是正數 還是 負數,模的符號與被除數的符號相同)。
例:8÷2=4 則2為除數。8為被除數。
7%4的結果是3
-7%4的結果是-3
3%-4的結果是3
2.逗號運算符: ,
a.逗號運算符,取括號里面最右邊的數。
例如: int a=1,int b=1,int c=1;
if(a>b.b>c,c>a){} //if的判斷條件只是是看 c>a
b.逗號運算符允許將多個表達式組合成為一個表達式。這個特點使得它適用於在 for 循環頭部初始化或遞增多個變量。
int i; float fArray[10], val;
for ( i=0, val=0.25; i < 10; ++i, val *= 2.0 ){
fArray[i] = val;
}
3.增量,減量運算符
a++ a--
int a=1,int b=1;int c=1;
printf("%d",a++); //直接輸出1,然后再a+1=2
printf("%d",a--); //直接輸出1,然后再a-1=0
++a --a
printf("%d",++a);//先a+1,然后輸出a=2
printf("%d",--a);//先a-1,然后輸出a=0
4.邏輯運算符
|| 邏輯或 : 1/真 | | XXX (直接短路,右邊不用計算)
&&邏輯與: 0/假 && XXX (直接短路,右邊不用計算)
5.位操作運算符(只針對整型)
對於更多緊湊的數據,C 程序可以用獨立的位或多個組合在一起的位來存儲信息。文件訪問許可就是一個常見的應用案例。位運算符允許對一個字節或更大的數據單位中獨立的位做處理:可以清除、設定,或者倒置任何位或多個位。也可以將一個整數的位模式(bit pattern)向右或向左移動。
移位運算符的操作數必須是整數。在實際移位操作之前,兩個操作數都要進行整數提升(promotion)。右邊操作數不可以為負值,並且必須少於左邊操作數在整數提升之后的位長。如果不符合這些條件,程序運行結果將無法確定。
左移時總是移位和補零(丟棄最高位,0補最低位)。右移時無符號數是移位和補零,此時稱為邏輯右移;而有符號數大多數情況下是移位和補最左邊的位(也就是補最高有效位),移幾位就補幾位,此時稱為算術右移。
unsigned long n = 0xB, // 位模式: 0 ... 0 0 0 1 0 1 1 result = 0; result = n << 2; //左移 0 ... 0 1 0 1 1 0 0 result = n >> 2; //右移 0 ... 0 0 0 0 0 1 0