一、二进制中‘1’的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
public class Solution { public int NumberOf1(int n) { int count = 0; while(n!=0){ count += (n&1);//最低位与1与 n>>>=1; } return count; } }
二、十进制转二进制
算法:原始数字对2取整,余数继续取整,直到整数等于0,结束循环,二进制是所有余数的排列,最后得到的余数是最高位。
负整数,同样,添加一个负号。
package 十进制转二进制; import java.util.Scanner; public class MainDemo { public static void main(String[] args) { int number = new Scanner(System.in).nextInt(); StringBuilder sb = new StringBuilder(); if (number>0) { while(number>0) { sb.append((number%2)); number = number/2; } System.out.print(sb.reverse().toString()); } if(number<0) { number = -number; while(number>0) { sb.append((number%2)); number = number/2; } sb.reverse(); sb.insert(0,"-"); System.out.print(sb.toString()); } } }