[comp.sys.handhelds] HP28/48: Hamming weight of binary number

jurjen@cwi.nl (Jurjen NE Bos) (03/01/91)

Everybody who has had a HP16 knows that it sometimes is very convenient to
compute the number of 1 bits in a number.
Computing this on a HP28 or HP48 seems to take some time.  A recent discussion
in comp.arch yielded a much more efficient solution.  I changed it a little
bit to make it work for 64 bits, and translated it into RPL.  The program is
shown below.
Happy Hacking!

BITS:
\<< # 7777777777777777h OVER SR OVER AND
  DUP2 SR AND ROT OVER SR AND + + -
  DUP SR SR SR SR + #F0F0F0F0F0F0F0Fh AND
  #FF DUP2 / * -
\>>

I leave proving that this works as an exercise to the reader :-)