fork download
  1. #include <iostream>
  2.  
  3. enum class ColumnEnum {
  4. Column1=0, Column2, Column3, Column4, Column5, Column6, Column7
  5. };
  6.  
  7. uint64_t map(uint64_t x, ColumnEnum c)
  8. {
  9. x = (x >> (7 - static_cast<int>(c))) & 0x0101010101010101uLL;
  10. x = (x | (x >> 7)) &0x00FF00FF00FF00FFuLL;
  11. x = (x | (x >> 14))&0x000000FF000000FFuLL;
  12. x = (x | (x >> 28))&0x00000000000000FFuLL;
  13. return x << 56;
  14. }
  15.  
  16.  
  17. int main()
  18. {
  19. uint64_t matrice = 0x4040400040400040uLL;
  20. uint64_t matrice_2 = map(matrice, ColumnEnum::Column2);
  21. std::cout << std::hex << matrice_2 << '\n';
  22. }
Success #stdin #stdout 0s 2928KB
stdin
Standard input is empty
stdout
ed00000000000000