> 文档中心 > 与运算的基础运用

与运算的基础运用

题目描述:输入一个数据,输出这个数据二进制中1的个数。

import java.util.Scanner;//输入一个数据,输出该数据二进制中1的个数//与运算:遇0则全为0,双1才为1//或运算:遇1则全为1//异或运算:不同则为1,相同则为0public class jinzhi_4weiyunsuan {    public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); System.out.println(Integer.toString(n,2));//先输出数据的2进制方便查看 int sum=0; while(n!=0){     n=((n-1)&n);//将n的二进制-1,然后与原n进行与运算。     // 将运算后的值重新赋给n,如果n!=0,则重复运算,     // 运算一次sum++,直到n=0时停止运算,并输出运算的次数,     // 运算一次则消去一个1,所以运算的次数就等于1的个数  sum++;     } System.out.println(sum);    }}