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)为移位运算符

移位运算:移位后高位以符号位填充,低位越界后舍弃     且大多数为向下取整。

--------结束--------

原文地址:https://www.cnblogs.com/chuyds/p/10663897.html