Counting the number of bits that are set

后端 未结 3 713
悲&欢浪女
悲&欢浪女 2021-01-21 09:23

I want to count the number of bits in a binary number that are set. For example, user enter the number 97 which is 01100001 in binary. The program should give me that 3 bits are

3条回答
  •  时光说笑
    2021-01-21 09:45

    What you're looking for is often referred to as the population count (popcount).

    There are a number of C implementations on Bit Twiddling Hacks (some of which are scarily clever). If you're familiar with C, each approach should have a reasonable translation into MIPS assembly after breaking down the expressions.

    If your input domain is small (e.g. 0-255), you could always do a lookup table and use the input as the offset to fetch the popcount directly.

提交回复
热议问题