C/C++中的位运算符
--------开始--------
我自己都记不住这是第几次把这几个位运算符搞混了,刚好在刚用过来把这几个位运算符记下来,俗话说的好好记性不如个烂笔头。
运算符:
与 或 非 异或
and , & or , | not , ~ ^
单目运算符:~(按位取反)
双目运算符:<< >> & | ^(左移,右移,按位与,按位或,按位异或)
1)~ 按位取反具有有结合性,其功能为对参与运算的数的各二进制位按位取反。
2)& 其功能为对参与运算的两操作数各对应的二进制位相与。(都为1为1,否则为0)
3) | 其功能为对参与运算的两操作数各对应的二进制位想或。(有1为1,没1为0)
4)^ 其功能为对参与运算的两操作数各对应的二进制位相异或。(同是1为0,都为0为0,有单个1为1) // 1)2)3)4)为逻辑运算符
5)>> 右移运算符其功能为把操作数的各二进制位全部右移若干位。(类似将该数除于2的若干次方倍)
6)<< 左移运算符其功能为把操作数的各二进制位全部左移若干位。(类似将该数乘于2的若干次方倍) // 5)和 6)为移位运算符
移位运算:移位后高位以符号位填充,低位越界后舍弃 且大多数为向下取整。
--------结束--------