位運算
計算機現在可以存儲所有的數字(整數,浮點數,字符)的,運算。!
0 1
位運算?
2*8 最高效計算方式。
很多底層的調試器。需要通過位來判斷CPU的狀態。
1.與運算(and &)
計算機的本質。
1011 0001
1101 1000 與運算
1001 0000
2.或運算(or |)
1011 0001
1101 1000 或運算
1111 1001
1011 0001
1101 1000
----------- 異或運算
0110 1001
3.非運算(單目運算符 not ~) 0就是1,1就是0 ,取反!
1101 1000
0010 0111
通過這些可以完成加減乘除!位運算來實現加減乘除!
4.位運算(移動位)
左移:(shl <<)
0000 0001 @ 所有二進制位全部左移若干位,高位就丟棄了,低位補0
0000 0010
右移:(shr >>)
0000 0001 @ 所有二進制位全部右移若干位,低位就丟棄了,高位就需要補0,1(符號位決定。)
0000 0000
int a =10;
printf("%d\n",a>>2);
二進制、位運算=> 加減乘除