如何统计一个二进制数中1的数量?
- 内容介绍
- 文章标签
- 相关推荐
本文共计831个文字,预计阅读时间需要4分钟。
目录+ 计算二进制数中1的个数+ 思路简单总结+ C++1的个数简单解法+ 问题描述+ 输入格式+ 输出格式+ 计算二进制数中1的个数+ 看到计算二进制数中1的个数的巧妙做法,做个笔记(其实是)
目录
- 计算二进制数中1的个数
- 思路简单总结
- C++1的个数简单解法
- 问题描述
- 输入格式
- 输出格式
计算二进制数中1的个数
见到计算二进制数中的1的个数的比较精巧的做法,做个笔记(其实是之前被问到了,所以就查了下…
int CountOnes(int n) { int count = 0; while(n) { ++count; n = n & (n - 1); } return count; }
刚看见时不太明白思路,然后自己拿笔随便划拉了下,算是搞明白了思路,简单总结一下。这个方法的主要思想就是找到当前数字中最靠右的1。
思路简单总结
n - 1(n不为0时)会使得n的最右侧第一个1以及该位的右侧的所有位取反,此时进行与操作,就会将该位置为0。
其实看上面那句话就行了,思路很简单,完全理解不了思路才需要看下面的:
大致上可以分成两种情况,当然事实上可以看成是同一种情况
- 第一种:n的最右边是1。
本文共计831个文字,预计阅读时间需要4分钟。
目录+ 计算二进制数中1的个数+ 思路简单总结+ C++1的个数简单解法+ 问题描述+ 输入格式+ 输出格式+ 计算二进制数中1的个数+ 看到计算二进制数中1的个数的巧妙做法,做个笔记(其实是)
目录
- 计算二进制数中1的个数
- 思路简单总结
- C++1的个数简单解法
- 问题描述
- 输入格式
- 输出格式
计算二进制数中1的个数
见到计算二进制数中的1的个数的比较精巧的做法,做个笔记(其实是之前被问到了,所以就查了下…
int CountOnes(int n) { int count = 0; while(n) { ++count; n = n & (n - 1); } return count; }
刚看见时不太明白思路,然后自己拿笔随便划拉了下,算是搞明白了思路,简单总结一下。这个方法的主要思想就是找到当前数字中最靠右的1。
思路简单总结
n - 1(n不为0时)会使得n的最右侧第一个1以及该位的右侧的所有位取反,此时进行与操作,就会将该位置为0。
其实看上面那句话就行了,思路很简单,完全理解不了思路才需要看下面的:
大致上可以分成两种情况,当然事实上可以看成是同一种情况
- 第一种:n的最右边是1。

