language: C++11 (gcc-4.7.2)
date: 188 days 23 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
enum class ColumnEnum {
  Column1=0, Column2, Column3, Column4, Column5, Column6, Column7
};
 
uint64_t map(uint64_t x, ColumnEnum c)
{
  x = (x >> (7 - static_cast<int>(c))) & 0x0101010101010101uLL;
  x = (x | (x >> 7)) &0x00FF00FF00FF00FFuLL;
  x = (x | (x >> 14))&0x000000FF000000FFuLL;
  x = (x | (x >> 28))&0x00000000000000FFuLL;
  return x << 56;
}
 
 
int main()
{
  uint64_t matrice = 0x4040400040400040uLL;
  uint64_t matrice_2 = map(matrice, ColumnEnum::Column2);
  std::cout << std::hex << matrice_2 << '\n';
}