Author: Uri Blass
Date: 12:16:52 01/10/03
1)How do I use assembler code under C to count the number of 1's in a bitboard? I do not know how to copy assembler code from crafty. I understood from previous post that the relevant code is in crafty but I do not know how to copy it correctly with all the #defines in crafty. I understood that there are some relevant codes(x86.s, vcline.h that I could not find and boolean.h 2)I tried a code of dieter and got warning from the compiler(see the bottom of this post for that code) warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned long ', possible loss of data Note that I changed int PopCount(unsigned long long a) to int PopCount(BitBoard a) I also have in my code typedef unsigned __int64 BitBoard; I also never use the word long in my program except the code that I copied from Dieter and I use int for 32 bit numbers. The warning was about w= int PopCount(BitBoard a) { unsigned long w; int n = 0; w = a&0xffffffffUL; if (w) do { n++; } while ((w &= w-1) != 0); w = (a>>32)&0xffffffffUL; if (w) do { n++; } while ((w &= w-1) != 0); return n; } Uri
This page took 0.01 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.