位运算
Posted 一光年太远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位运算相关的知识,希望对你有一定的参考价值。
首先介绍一下基本的位操作:位操作的是整数基本数据类型中的单个比特,即操作的是 二进制
================================= =================================
按位操作符:
& 按位与操作
| 按位或操作
^ 按位异或操作
~ 按位非操作
================================= =================================
& ==== 如果输出位都是 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
以上是关于位运算的主要内容,如果未能解决你的问题,请参考以下文章
Java位运算:位异或运算位与运算位或运算位取反运算左位移运算右位移运算无符号右移运算不用额外变量交换两个整数的值(使用位异或运算)只出现一次的数字
Java位运算:位异或运算位与运算位或运算位取反运算左位移运算右位移运算无符号右移运算不用额外变量交换两个整数的值(使用位异或运算)只出现一次的数字