相关疑难解决方法(0)

如何计算32位整数中的设置位数?

代表数字7的8位看起来像这样:

00000111
Run Code Online (Sandbox Code Playgroud)

设置三位.

什么算法来确定32位整数中的设置位数?

algorithm binary bit-manipulation hammingweight iec10967

838
推荐指数
31
解决办法
52万
查看次数

如何在不使用任何班次的情况下计算正位数?

在一次求职面试中,我曾经被要求计算位向量结构中的正数(即设置为"1")位数(如无符号整数或长整数).我的解决方案在C#中非常简单:

int CountBits(uint input)
{
   int reply = 0;
   uint dirac = 1; 
   while(input != 0)
   {
      if ((input & dirac) > 0) reply++;
      input &= ~dirac;
      dirac<<=1;
   }
   return reply;
}
Run Code Online (Sandbox Code Playgroud)

然后我被要求在不使用任何轮班的情况下解决任务:既不明确(如"<<"或">>")也不隐含(如乘以2).使用潜在的2行(如0,1,2,4,8,16等)的"暴力"解决方案也不会这样做.

有人知道这样的算法吗?

据我所知,它应该是一种或多或少的通用算法,它不依赖于输入位向量的大小.允许所有其他按位运算和任何数学函数.

algorithm bit-manipulation bitvector

6
推荐指数
1
解决办法
1041
查看次数

计算比特和位反转的数量

可能重复:
n位整数中有多少1?

你好

如何计算有多少位?

1100110 -> 4
101 -> 2
Run Code Online (Sandbox Code Playgroud)

第二个问题:

如何反转位?

1100110 -> 0011001
101 -> 010
Run Code Online (Sandbox Code Playgroud)

谢谢

c c++ bit

1
推荐指数
1
解决办法
1064
查看次数