2490. 齐夏的二进制破译
1000ms
256MB
简单
位运算
题目描述
齐夏在生肖“地鼠”的房间里发现了一个神秘的数字 $N$。地鼠告诉齐夏,这个数字中隐藏着通往下一关的线索,线索的数量等同于该数字在二进制表示下 **数字 1 的个数**。
请你编写一个程序,利用位运算的技巧,帮齐夏快速计算出这个数字的二进制表示中共有多少个 1。
输入格式
- 一个正整数 $N$ ($1 \le N \le 10^9$)。
输出格式
- 一个整数,表示 $N$ 的二进制中 1 的个数。
样例 1
输入 (Input)
输出 (Output)
样例说明
$7$ 的二进制表示为 `111`,其中共有 3 个 1。
尝试使用 n & (n - 1) 的技巧:该操作可以瞬间消去二进制中最右侧的一个 1。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功