Java 习题 (25) **

题目:
编写一个具有两个常量值的程序,一个具有交替的二进制位1和0, 其中最低有效位为0,另一个也具有交替的二进制位1和0,但是其最低有效位为1 (提示:使用十六进制常量来表示是最简单的方法). 取这两个值,用按位操作符以所有可能的方式结合运算它们,用三元操作符合按位操作符来显示二进制的1和0。

解答:

import java.util.*;

public class chapterFour {
    public static void main(String[] args){
        int a = 0xaaaa;
        int b = 0x1111;
        System.out.print("a = ");
        toBinaryString(a);
        System.out.println(" ");

        System.out.print("b = ");
        toBinaryString(b);
        System.out.println(" ");

        System.out.print("~a = ");
        toBinaryString(~a);
        System.out.println(" ");

        System.out.print("~b = ");
        toBinaryString(~b);
        System.out.println(" ");

        System.out.print("a & b = ");
        toBinaryString(a & b);
        System.out.println(" ");

        System.out.print("a | b = ");
        toBinaryString(a | b);
        System.out.println(" ");

        System.out.print("a ^ b = ");
        toBinaryString(a ^ b);
        System.out.println(" ");

        System.out.print("a & a = ");
        toBinaryString(a & a);
        System.out.println(" ");

        System.out.print("a | a = ");
        toBinaryString(a | a);
        System.out.println(" ");

        System.out.print("a ^ a = ");
        toBinaryString(a ^ a);

    }

    public static void toBinaryString(int i){
        char[] buffer = new char[32];
        int bufferPosition = 32;
        do{
            buffer[--bufferPosition] = ((i & 0x01) != 0) ? '1' : '0';
            i >>>= 1;
        } while(i != 0);
        for(int j = bufferPosition; j < 32; j++){
            System.out.print(buffer[j]);
        }
    }
}

结果如下:
在这里插入图片描述

如果觉得不错,就用点赞或者关注来代替五星好评吧!谢谢了!

猜你喜欢

转载自blog.csdn.net/BSCHN123/article/details/107309216