\ue50a2021-03-22　16:13:42　\ue50bjava中常用的　7个位运算符:&　同为1则为1　否则为0|　一位为1　则返回1~　将操作数的每　位　取反^　两位相同时返回0,不同时返回1>　右移运算符　将操作数的二进制码整体右移指定位数,左边空出的以符号位填充(如果是正数,就是以0填充。如果是负数,就是以1填充。)　正数---除2^n　>>>无符号右移运算符　将操作数的二进制码整体右移指定位数,左边空出来的位总是以0填充。　正数---除2^n　说明:位运算的效率高于乘除运算,因为计算机底层就是0　1二进制来处理的。　位运算优先级　~的优先级最高,其次是和>>>,再次是&,然后是^,优先级最低的是|。　位运算总的来说比较简单,但是应用却是很多,要能熟练掌握并使用常用的应用。　位运算基础操作　//对于任意整数　a　和b,以下表达式的结果均成立　a|0　==　a;　a&-1　==　a;　a&0　==　0;　a^a　==　0;　a^0　==　a;　a|~a　==　-1;　a&~a　==　0;　a&a　==　a;　a|a　==　a;　a|(a&b)　==　a;　a&(a|b)　==　a;　应用一:判断奇偶数　a&1　==　0;则a为偶数　a&1　==　1;则a为奇数　说明:　1的二进制表示形式除了最后一位其余所有的位都是0,所以a&1对应的除了最后一位全部是0,我们知道,一个数如果是偶数,则最后一位二进制位肯定是0,因为其他位都是2的整数次方,而如果一个数是奇数,则最后一位二进制位肯定是1。所以,当a&1　==　0时,说明a是偶数,当a&1　==　1时,说明a是奇数。　应用二:交换两数　int　a　=　5;　int　b　=　9;　a　^=　b;　b　^=　a;　a　^=　b;　说明:直接看第二步,其实就是这样:b　=　b^　(a^b)　=　a;　因为异或运算满足交换律,一个数亦或自己结果为0,而任意一个数亦或0都等于自身,所以b　=　b^　(a^　b)　=　b^　b^　a　=　0^a　=　a。　再来看第三步,a　=　a^　b;此时,a　=　(a^　b)^a;(第一个a为原来的a,值为5;第二个a代表的是第二步运算,其实是交换后的b的值,这里的b也是指的是为交换之前的b),所以,a　=　b;(b为交换之前的b),所以两数就会发生交换。　应用三:求整数的绝对值　int　i　=　a>