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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/sinat_32336967/article/details/98504855

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

猜你喜欢

转载自blog.csdn.net/sinat_32336967/article/details/98504855