定义一个int类型的变量n,将其赋值为0x27A5F;定义一个boolean的变量flag,如果n从右边往左边数过来第9位(首位为第0位)为1,则其值为true,否则为false;再定义3个int变量n1、n2、n3。n1右边的16位来自n1,左边的16位为全0;n2的值也来自n,但它从右边往左边数过来第5位(首位为第0位)被置为1;n3的值也来自n,但它从右边往左边数过来第4位(首位为第0位)被清为0。
将上述变量再独立的行中输出出来,其中整数用16进制的方式输出。
下面是答案,答题不易帮忙关注下博客
public static void main(String[] args) {
int n = 0x27A5F;
boolean flag = (n >>> 9 & 1) == 1;
int n1 = n & 0xFFFF;
int n2 = n | (1 << 5);
int n3 = n & (~(1 << 4));
System.out.println("flag:" + flag);
System.out.println("n1:" + Integer.toHexString(n1));
System.out.println("n2:" + Integer.toHexString(n2));
System.out.println("n3:" + Integer.toHexString(n3));
System.out.println("以下二进制输出,方便验证题目要求");
System.out.println("n :" + Integer.toBinaryString(n));
System.out.println("n1:" + Integer.toBinaryString(n1));
System.out.println("n2:" + Integer.toBinaryString(n2));
System.out.println("n3:" + Integer.toBinaryString(n3));
}