首页 > 代码库 > 位操作运算符梳理

位操作运算符梳理

(晚上实在是闲的胃疼。。翻了翻代码发现位运算还写的不太好,在这里梳理一下位运算符)

运算符含义说明例子
&按位与

把参与运算的两个数对应的二进制位相与,只有对应的二进制均为1时,结果的对应位才为1,否则为0.

9&5中9可以写成00001001,5可以写成00000101,9&5的运算结果是00000001.转化为十进制输出结果是1.

|按位或把参与运算的两个数对应的二进制位相或,也就是只要对应的两个二进制位有一个为1时,其结果就为1.

9|5相当于00001001|00000101,运算结果是00001101.转化为十进制输出结果是13.

^按位异或

把参与运算的两个数对应的二进制位相异或,当对应的二进制位上的数字不相同时结果为1,否则为0.

9^5相当于00001001^00000101,运算结果是00001100.转化为十进制输出结果是12.
~取反把运算数的各个二进制位按位求反,各位原来是0的改为1,原来是1的改为0.~9相当于~(00001001),运算结果是11110110.转化为十进制输出结果是246.
<<左移把<<左边的运算数的各二进制位向左移若干位,<<右边的数是指定移动的位数,高位丢弃,低位补0.3<<4相当于把3=00000011左移4位,运算结果是001100 00.转化为十进制输出结果是48.
>>右移把>>左边的运算数的各二进制位向右移若干位,>>右边的数是指定移动的位数,高位丢弃,低位补0.15>>2相当于把15=00001111右移2位,运算结果是0000 0011,转化为十进制输出结果是3.

 

发现表格不怎么会用。。以后再练练吧

明天滚去上学。。估计要被三主课老师叫出去殴一顿QAQ

大家晚安。。

位操作运算符梳理