#include <iostream>

int main() {
    uint64_t matrix = 0b0110101001101011011110100110101011101010011010100110111001101010ULL;
    
    int column = 3; // "d"-column

    int result = 0;
    int source_bitpos = 7 - column; // "point" to last entry in this column
    for (int target_bitpos = 0; target_bitpos < 8; ++target_bitpos)
    {
        bool bit = (matrix >> source_bitpos) & 1;  // "extract" bit
        result |= bit << target_bitpos;            // add bit if it was set
        source_bitpos += 8;                        // move one up in table
    }
    
    std::cout << result << std::endl;
}