Java实现int整型转32位二进制、统计二进制中1的个数

1. 示例代码

package org.jinyuxin.a20190805;

import java.util.Scanner;

public class IntToBinary {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int i = sc.nextInt();
    intTo32BitBinary(i);
    countBinaryOne(i);
  }

  //将int型整数转成有符号的32位二进制数
  public static void intTo32BitBinary(int x) {
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < 32; i++) {
      sb.append(x & 1);
      //无符号右移,高位补0,包括符号位在内一起右移
      //>> 是有符号右移。符号位保持不变,负数高位补1,正数高位补0。
      x = x >>> 1;
    }
    //得到32位的二进制字符串
    String str32 = sb.reverse().toString();
    System.out.println("有符号32位二进制为:"+str32);
  }

  //统计二进制中1的个数
  public static void countBinaryOne(int x) {
    int count = 0;
    while(x != 0) {
      x = x & (x-1);
      count++;
    }
    System.out.println(count);
  }
}

2. 示例结果

在这里插入图片描述
以上程序和思路参考:
【Java基础】整型转换为二进制字符串(无符号右移) https://blog.csdn.net/liyazhou0215/article/details/77501729
【计算数值二进制表达式中1的个数】 https://blog.csdn.net/itworld123/article/details/88715835

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值