我想计算设置的二进制数中的位数。
例如,用户输入数字 97,二进制表示为 01100001。该程序应该告诉我 3 位是使用 MIPS ISA 设置的。
我能够用 C 实现这一点,但我不知道如何使用汇编代码实现它。
您要查找的内容通常称为人口计数 (popcount)。
上面有很多 C 实现位摆弄黑客(其中一些非常聪明)。如果您熟悉 C,每种方法在分解表达式后都应该有一个合理的 MIPS 汇编转换。
如果您的输入域很小(例如 0-255),您始终可以执行查找表并使用输入作为偏移量来直接获取 popcount。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)