位运算的原理和应用

6种位运算操作

&:按位 与  and

|:按位  或   or

^:按位 异或 xor

~:按位 取反 not

<<:左移

>>:右移

1.按位 与 &

原理:都为1结果为1,否则为0

用途:将字节中的某一位或某几位设置为0。同时不影响其他位的操作

       和0xFFFF与操作 不改变原来数据

       Eg:16位,和0x0FFF操作  最高位置为0

2.按位 或 |

原理:都为0时输出0,否则输出1

用途:将字节中的某一位或某几位设置为1。同时不影响其他位的操作

       和0x0000 或操作 不改变原数据

Eg:16位,和0xF000操作   最高位置为1

3.异或 ^

原理:不同输出1,相同输出0

用途:1.使特定位取反

         2.交换两个变量值

       异或操作 与 0xFFFF不改变原数据

4.取反操作~

原理:1变为0,0变为1

用途:正数,源码、补码、反码一致

         负数,补码=源码符号为不动,取反+1

       一个数a取反 = -(a+1)

5.左移和右移:

用途:用于整数的快速乘除

左移:移动n位 乘2的n次方

右移:移动n位 除2的n次方

原文地址:https://www.cnblogs.com/heixiang/p/10964108.html