Author: James Swafford
Date: 16:05:48 10/19/00
Go up one level in this thread
On October 19, 2000 at 19:03:22, James Swafford wrote:
>On October 19, 2000 at 17:09:39, Severi Salminen wrote:
>
>>Hi!
>>
>>Now I have my bitboard move generator online generating pawn and knight moves!
>>It works, great! One question:
>>
>>How do I find n in a binary number 2^n? So f(1000b)=3? Now I just shift right:
>>
>>c=0;
>>while(B>>++c) ;
>>c--;
>>
>>Any ideas?
>>
>>Severi
>
>The easiest (and slowest) way is to count the number of right shifts.
>Something like:
>
>----------
>for (n=0;n<max_bits;n++) {
> if (binary_number&1) break;
> binary_number>>=1;
>}
>
>bit_position=n;
>-----------
Almost forgot - this assumes binary_number != 0.
>
>There are faster ways, like table lookups. Precomputation is
>always faster.
>
>--
>James
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.