以mips为单位评估int中的各个位?

时间:2013-12-09 04:05:17

标签: mips bits

我是mips的新手。我知道基本功能(如何使用系统调用来使用寄存器,打印和扫描内容)但是当我试图找出如何访问32位整数的各个位以计算1的数量时,我已经碰壁了。在里面。我想我可能不得不创建一个int数组来表示所有的位?但我觉得必须有一个更简单的方法。

1 个答案:

答案 0 :(得分:0)

基本上是:

int countOnes(int number)
{
    int count = 0;

    for (int i = 1; i < 32) {
        count += number & 1;
        number >>= 1;
    }
    return count;
}