我需要计算二进制数中的1的数量,比方说5,所以00001001将是2或n = 2。我正在使用MIPS。最好的方法吗?
答案 0 :(得分:1)
执行此操作的最佳方法是计算。
您可以通过1
来检查是否设置了最低有效位(and
)。如果你得到一个非零结果,它就被设置了,所以你应该增加一个计数器(当然最初初始化为零)。
您可以使用逻辑shifty运算符来右移所有值的位。
您可以循环执行这两项操作,直到您的值最终为零。大多数架构都有条件分支指令。
然后,您的任务是找到MIPS的指令并按正确的顺序排列: - )
没有特别的顺序,我会查看以下一组说明:{andi, srl, beq, addi}
,但可能还有其他一些你需要的。