Message-ID: <37B4D8BC.6465@ns.sympatico.ca> From: Klaas Organization: N/A X-Mailer: Mozilla 3.04 (Win95; I) MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: Re: Bit counting? References: <37B45836 DOT EAD7C82D AT swipnet DOT se> <37B48ABE DOT 110D2C13 AT intel DOT com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 27 Date: Fri, 13 Aug 1999 23:47:24 -0300 NNTP-Posting-Host: 142.177.60.2 X-Trace: sapphire.mtt.net 934598824 142.177.60.2 (Fri, 13 Aug 1999 23:47:04 ADT) NNTP-Posting-Date: Fri, 13 Aug 1999 23:47:04 ADT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Kurt Alstrup wrote: > > Try this little function, I guess it may gain if written in assembly > though .. > > /* > * Ones > * > * This magic counts the number of bits in one longword > */ > > int > Ones(unsigned long mask) > { > register unsigned long y; > > y = (mask >> 1) & 033333333333; > y = mask - y - ((y >>1) & 033333333333); > return (int) (((y + (y >> 3)) & 030707070707) % 077); > } > > Regards, > Kurt Alstrup Doesn't the modulo make it rather slow? -Mike