課堂筆記 位運算

2021-07-25 11:41:22 字數 875 閱讀 3565

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 面臨...