求int型数据在内存中存储时1的个数
输入一个int型数据,计算出该int型数据在内存中存储时1的个数
输入:一个整数(int类型)
输出:这个数转换成2进制后,输出1的个数
样例输入:5
样例输出:2
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args){ 5 Scanner sc = new Scanner(System.in); 6 int n = sc.nextInt(); 7 int count = 0; 8 while(n!=0){ 9 n = n&(n-1);10 count++;//按位与操作 11 } 12 System.out.println(count); 13 } 14 }
数字在内存中 ,被转化为二进制。
例如7表示为0111
n&(n-1) 即(0111)&(0110)== 0110 就是 n去除了最后一个1 ;
几个1 就可以在几次内去除几个1;
输入整数一定要考虑正负0的情况。
浙公网安备 33010602011771号