如何打印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);
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值