题解 | #求int型正整数在内存中存储时1的个数#

求int型正整数在内存中存储时1的个数

https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        scanner.close();// Scanner 对象从控制台读取输入后,及时关闭它可以避免资源泄漏
        int count = 0;
        while (num!= 0) {
            count += num & 1;//先按位与运算,它将变量 num 与数字 1 进行按位与操作。如果 num 是奇数,结果为 1;如果 num 是偶数,结果为 0。例如,当 num = 5(二进制为 101)时,5 & 1 的结果为 1;当 num = 6(二进制为 110)时,6 & 1 的结果为 0。
            num >>>= 1;//在 Java 中是无符号右移赋值操作。
        }
        System.out.println(count);
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务