人口计数特定算法解释/在汇编

时间:2017-03-15 20:51:48

标签: algorithm assembly mips

我找到了一个人口计数算法,如下所示:

unsigned int v; // count the number of bits set in v
unsigned int c; // c accumulates the total bits set in v
for (c = 0; v; c++)
{
  v &= v - 1; // clear the least significant bit set
}

我的问题是,是否可以将其实现为汇编(MIPS)?我不明白“for”循环是如何工作的,如果有人能解释条件是什么(我怀疑它是0< v?)。关于这个算法还有另一个问题,但它没有解释指令级深度的算法。

Cast some light on population count algorithm

旁注:我的hw是实现一个popcount算法,它计算MIPS(子程序)上32位整数的设置位,但我不允许以任何方式使用乘法/除法。希望我的问题不是重复的垃圾邮件:/

0 个答案:

没有答案