i++先使用後自加
++i先自加後使用
int i = 2;
int num;
(1)num =(i++)+(i++)+(i++)+(i++); 結果i=6 num=8
(2)num =(++i)+(++i)+(++i)+(++i); 結果i=6 num=19
(3)i = i *((i++)+ (++i)); 結果i=19
(4)i = (i++) + (++i) + (i++) + (++i); 結果i=15
(5)i = (++i) + (i++) + (++i) + (++i); 結果i=16
函式傳參從右邊開始傳
,i++替換成數值 ++i替換成變數
int i = 2;
func(++i, i++); 結果a=4 b=2
func(++i, i++,i++, ++i, i++); (7,5,4,7,2)
func(i++, i++, ++i, i++, ++i); (6,5,7,3,7)
位運算子
處理的是無符號數
右移用符號位來補位,左移用0來補位
按位與運算通常用來對位清零或保留某些位
按位或運算通常用來將
源運算元某些位置1,其他位不變
異或通常用來使特定位的值取反或者不引入第三方變數,交換兩變數的值
不引入第三方變數,交換a與b的值。
a=a^b;
b=a^b;
a=a^b; 或:
a=a+b;
b=a-b;
a=a-b;
第一種方法更好,因為加減法做大數操作時會溢位。
位運算筆記
10 1010 12 1100 與例如 以下按位比較,當兩個同時為1則為1,否則為0 10 1010 12 1100 結果為 8 1000 或例如 以下按位比較,當兩個有任何乙個為1則為1,否則為0 10 1010 12 1100 結果為 14 1110 非例如 以下按位比較,當兩個數不同時則為1否...
筆記 位運算
1 格式 x y 2 規則 對應位均為1時才為1,否則為0。例如,3 9 1 0011 1001 0001 3 主要用途 取 或保留 1個數的某些位,其餘各位置0。1 格式 x y 2 規則 對應位均為0時才為0,否則為1 3 9 11。例如,3 9 11 0011 1001 1011 3 主要用途...
位運算筆記
需要掌握的知識 原碼 反碼 補碼 原碼 是最簡單的機器數表示法。用最高位表示符號位,1 表示負號,0 表示正號。其他位存放該數的二進位制的絕對值。1010 最高位為 1 表示這是乙個負數,其他三位為 010 即 0 2 2 1 2 1 0 20 2 表示冪運算子 所以1010表示十進位制數 2 面臨...