之前我一直不了解位运算符和逻辑运算符之间有什么区别。相信很多人也有这样的困惑,下面就来详细解决一下大家心中的疑惑。
位运算符的操作对象是计算机中的二进制数。
首先我们要来解释一点,就是程序中的所有数在计算机内存中都以二进制的形式储存。
下面来讲一讲位运算符都有哪些
& | 按位与运算符,参与运算的两个值,如果两个相应的位都是1,则该位的结果为1,否则为0 | a&b的结果是12,二进制解释为00001100 |
| | 按位或运算符,只要对应的两个二进制位有一个为1,则结果位为1 | a|b的结果为61,二进制的、解释为00111101 |
^ | 按位异或运算符,当对应的二进制位相异时,结果为1 | a^b的结果为49,二进制的解释为00110001 |
~ | 按位取反运算符,1变成0,0变成1 | ~a的结果位-61,二进制的解释为11000011 |
<< | 左移运算符,运算数的二进制位全部左移若干位,由<<右边的数值指定需要移动的位数 | a<<2的结果为240,二进制的解释为11110000 |
>> | 右移运算符,运算数的二进制位全部右移若干位,由>>右边的数值指定需要移动的位数 | a>>2的结果为15,二进制解释为00001111 |
希望这篇博文能对大家有所帮助。