最近要用java位操作运算故做了部分准备工作,由于工作过程中用到的操作不多,在此以作备忘:
位移操作:
>> 右移操作,高位补0;每移一位相当于做一次除2操作
<< 左移操作,低位补0;每移一位相当于做一次乘2操作
& 按位与,一0则0;
| 按位或,一1则1;
取字节的末3位 & 7
取字节的第5、6位(从0开始由右至左计算) >> 5 & 3
示例代码:
位移操作:
>> 右移操作,高位补0;每移一位相当于做一次除2操作
<< 左移操作,低位补0;每移一位相当于做一次乘2操作
& 按位与,一0则0;
| 按位或,一1则1;
取字节的末3位 & 7
取字节的第5、6位(从0开始由右至左计算) >> 5 & 3
示例代码:
public class Binary {
public static void main(String[] args) {
int ii = 205 ;
byte a = (byte) 0x6a ;
System.out.println( "byte a 的二进制数据:" +Integer.toBinaryString(a));
System.out.println("byte a 右移5位 a>>5:" + Integer.toBinaryString(a>>5)); //右移除2
System.out.println("byte a 左移1位 a<<1:" + Integer.toBinaryString(5<<1)); //左移乘2
System.out.println("ii的二进制数据为:" + Integer.toBinaryString(ii));
System.out.println("取ii的末3位(按位与 & 7):" + Integer.toBinaryString(ii&7));
System.out.println("取ii的第5、6位 ii>>5 & 3:" + Integer.toBinaryString(ii>>5 & 3));
}
}