ОК, рассмотрим 64-битное число, а его биты образуют таблицу 8x8.
например.
0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0
записанный как
a b c d e f g h
----------------
0 1 1 0 1 0 1 0
0 1 1 0 1 0 1 1
0 1 1 1 1 0 1 0
0 1 1 0 1 0 1 0
1 1 1 0 1 0 1 0
0 1 1 0 1 0 1 0
0 1 1 0 1 1 1 0
0 1 1 0 1 0 1 0
Теперь, если мы хотим изолировать JUST, например. столбец d (00100000
) (или любая строка/диагональ в этом случае)?
Можно ли это сделать? И если да, то как?
СОВЕТЫ:
-
(a) Моя главная цель здесь - хотя и не изначально упомянутая - это сырая скорость. Я ищу самый быстрый алгоритм, так как функция "извлечения" выполняется несколько миллионов раз в секунду.
-
(b) Это то, что приближается к тому, что я имею в виду: http://chessprogramming.wikispaces.com/Kindergarten+Bitboards