- 31 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 08:34:46 ]
- 2ビットごとにまとめる処理は、いわゆるシャフルだ
下位32ビットについて、 b = black & 0xffffffff; b = ((b & 0xffff0000) << 16) | (b & 0xffff); b = ((b & 0xff00ff00ff00) << 8) | (b & 0xff00ff00ff); b = ((b << 4) | b) & 0x0f0f0f0f0f0f0f0f; b = ((b << 2) | b) & 0x3333333333333333; b = ((b << 1) | b) & 0x5555555555555555; で間に0を入れ、白も同様に処理し、 x = b | (w << 1); とすれば、2ビットごとにまとめることができる。 あとは >>30 の処理を行えば、下4行分のインデックスが求まる。
|

|