如何打印int整数的32位二进制数(位运算)

 位运算符:

<<左移

>>右移

>>>无符号右移

& 与运算 :两位全为1,结果为1,否则为0

 | 或运算:两位只要有一个为1,结果为1,否则为0

^异或运算:两位一个为0,一个为1结果为1,否则为0

~ 非运算符:0->1,1->0   非运算即取反运算,在二进制中1变0,0变1

位运算 是直接对二进制直接进行计算

public class BitOperation {
    public static void print32(int num){
          //我的解读:
          //num:要打印出32位二进制数的int整数
          //先让num这个数字 和 1 << 31位 这个数 与运算(&)
          //1 << 31 会得到一个第一位是1,后面全是0的数
          //1 << 30 会得到一个第二位是1,后面全是0的数
          //以此类推...
          //相当于循环32次,从第一位开始比较,一直到最后
          //如果num和 1 << i 与运算 == 0,说明第i位是0,否则第i位是1
          //因为 与运算 的特点是,1和0=0,0和1=0,1和1=1.
          //然后再用一个三元运算符做条件判断即可
          //(条件表达式) ? true : false
         for(int i = 31; i >= 0;i--){
             System.out.print( (num & 1 << i) == 0 ? 0 : 1);
         }
    }
    public static void main(String[] args) {
        int num = 2;
        print32(num);
    }
}

你可能感兴趣的:(蓝桥杯,java,职场和发展)