📄 bitopapli.java
字号:
/** 一个简单的应用程序,用来说明位运算符的应用 */
/** 类BitOpApli */
public class BitOpApli{
static final int FLAG1=1; //定义常量FLAG1为int型,值为1(右边5位是00001)
static final int FLAG2=2; //定义常量FLAG2为int型,值为2(右边5位是00010)
static final int FLAG3=4; //定义常量FLAG3为int型,值为4(右边5位是00100)
static final int FLAG4=8; //定义常量FLAG4为int型,值为4(右边5位是01000)
static final int FLAG5=16; //定义常量FLAG5为int型,值为4(右边5位是10000)
/** main()方法 */
public static void main( String args[] ){
int flags=0; //初始化所有的标志位
int flag1=flags & FLAG1; //获得flag1
int flag2=(flags & FLAG2)>>>1; //获得flag2
int flag3=(flags & FLAG3)>>>2; //获得flag3
int flag4=(flags & FLAG4)>>>3; //获得flag4
int flag5=(flags & FLAG5)>>>4; //获得flag5
System.out.println("Clear flags...flags="+flag5+flag4+flag3+flag2+flag1);
//输出标志位状态,下同
flags=flags | FLAG1; //将flag1置位
flag1=flags & FLAG1; //获得flag1
System.out.println("Set flag1...flags="+flag5+flag4+flag3+flag2+flag1);
flags=flags ^ FLAG2; //将flag2翻转
flag2=flags>>>1 & 1; //获得flag2
System.out.println("Revert flag2...flags="+ flag5+flag4+flag3+flag2+flag1);
flags=flags | FLAG3; //将flag3置位
flag3=flags>>>2 & 1; //获得flag3
System.out.println("Set flag3...flags="+ flag5+flag4+flag3+flag2+flag1);
flags=~FLAG1 & flags; //将flag1清零
flag1=flags & FLAG1; //获得flag1
System.out.println("Clear flag1...flags="+ flag5+flag4+flag3+flag2+flag1);
flags=flags | FLAG4 | FLAG5; //将flag4和flag5置位
flag4=flags>>>3 & 1; //获得flag4
flag5=flags>>>4 & 1; //获得flag5
System.out.println("Set flag4 and flag5...flags="+ flag5+flag4+flag3+flag2+flag1);
flags=flags ^ FLAG5; //将flag5翻转
flag5=flags>>>4 & 1; //获得flag5
System.out.println("Revert flag5...flags="+ flag5+flag4+flag3+flag2+flag1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -