统计二进制中 1 的个数
文章目录
前言
看到这个问题的时候,我首先想到了汉明距离
和汉明重量
。
汉明距离主要用于数据传输差错控制编码。汉明距离是一种概念,指的是长度相等的两个字符串对应位置上的字符不同的个数。
下面例子的汉明距离是 3。
汉明重量是一种特殊的汉明距离,指的是一个字符串与一个等长的0
字符串 的汉明距离,即一个字符串中非零的字符个数。
下面例子的汉明重量是 5。
统计二进制中 1
的个数,也可以说是求二进制字符串的汉明重量。
一、遍历
在统计二进制中1
的个数这个问题上,我们可以声明一个计数变量,然后遍历二进制中的每一位,如果是1
,计数变量加 1。
代码如下
int count(int n){
int cnt = 0;
while(n > 0){
if(n %