Author: Vincent Diepeveen
Date: 05:25:01 11/30/99
Go up one level in this thread
On November 29, 1999 at 20:03:13, Robert Hyatt wrote:
>On November 29, 1999 at 17:36:27, Nicolas Carrasco wrote:
>
>>Hi,
>>
>>I am studying BITBOARDS programs and I had found this piece of code:
>>//////////////////////////////////////////////////////
>>int msb[65536]; // this array will contain the number of the first 1 bit
> // for _any_ 16 bit value.
>>
>>BITBOARD mask;
>>
>>msb[0]=16; // normal values should be 0-15. 16 -> no 1 bit set
>>for (c=1;c<65536;c++)
>>{
>> mask=32768; // this is a 1 bit in position -1 (the real bit positions
> // are bit 0 thru bit 15.) We are going to shift this bit
> // right one bit at a time and use it to check to see if thet
> // bit is set in the word we are testing. by counting the
> // number of times this bit gets shifted, we know how many
> // zero bits we have skipped over.
>> for (k=0;k<16;k++) // this tests bits 0 thru 15, one after the other
>> {
>> if (mask & c) // if the bit is set, we store the bit number and exit
>> {
>> msb[c] = 15 - k;
>> break;
>> }
>> mask = mask>>1; // otherwise we shift it right one bit and test again.
>> }
>>}
>>//////////////////////////////////////////////////////
>>
>>That that code do?
>>How it is used at Bitboards?
>>
>>Thanks
>>
>>http://www.puntadeleste.to/uruchess/
>
>
>my first thought is that you really don't want to deal with bitmaps if you
>can't interpret the code above. But see the comments I inserted to understand
>what it does...
I knew that on some major points about bitboards we agree Bob!
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.