Java implementation int int turn 32 binary, the binary count the number of 1s

Disclaimer: This article is a blogger original article, follow the CC 4.0 BY-SA copyright agreement, reproduced, please attach the original source link and this statement.
This link: https://blog.csdn.net/sinat_32336967/article/details/98504855

1. Sample Code

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. Sample results

Here Insert Picture Description
Reference above procedure and idea:
[base] Java binary integer to a character string (unsigned right shift) https://blog.csdn.net/liyazhou0215/article/details/77501729
[numerical calculation in a binary expression 1 number] https://blog.csdn.net/itworld123/article/details/88715835

Guess you like

Origin blog.csdn.net/sinat_32336967/article/details/98504855