位运算

首先介绍一下基本的位操作:位操作的是整数基本数据类型中的单个比特,即操作的是 二进制

 ================================= =================================

 按位操作符:

&    按位与操作 

|     按位或操作

^    按位异或操作

~   按位非操作

 ================================= =================================

&  ====    如果输出位都是 1 ,那么输出 1 

例: 5  &  3  = 1 

  101

&011   << ==== >> 001 = 1

 ================================= =================================

|  ====    如果输出位有一个是 1 ,那么输出 1 

例: 5 | 3  = 7 

  101

011   << ==== >> 111 = 7

 ================================= =================================

^  ====    如果输出位有一个是 1,但不全是 1 ,那么输出 1 

例: 5 ^ 3  = 6 

  101

^011   << ==== >> 110 = 6

 ================================= =================================

~  ====  按位取反

例:5 的2进制表示是 : 00000000 00000000 00000000 00000101

==> ~5 = 11111111 11111111 11111111 11111010 = -(1073741824 - 5)

 ================================= =================================

移位操作运算:是对int基本类型的二进制的移位运算

移位操作符:  <<  ,>> ,>>>

>> :右移,若符号位为正,高位补0,反之相反      比如  10 >> 2  <==>  1010 >> 2  <==> 0010  <==> 2

<< :左移,向左移动                   比如  10 << 2  <==>  1010 << 2  <==> 101000 <==> 40

>>>:右移,无乱正负,最高位都插入0

原文地址:https://www.cnblogs.com/one-lightyear/p/7657831.html