// demo_01_ascii_byte_2_binary.cpp
/*
 * @topic T00240 Binary numbers
 * @brief <br />A program to convert character to its binary representation<br /><br />
*/

#include <iostream>

// Bit constants to access individual bits,
// also known as bit masks:
const int BIT_0000_0001 =   1; 
const int BIT_0000_0010 =   2; 
const int BIT_0000_0100 =   4; 
const int BIT_0000_1000 =   8; 
const int BIT_0001_0000 =  16; 
const int BIT_0010_0000 =  32; 
const int BIT_0100_0000 =  64; 
const int BIT_1000_0000 = 128; 

int main()
{	
    char ch = 'A'; // in ASCII encding, this is binary 01000001, decimal 65

    if ( ch & BIT_1000_0000 ) std::cout << '1'; else std::cout << '0';
    if ( ch & BIT_0100_0000 ) std::cout << '1'; else std::cout << '0';
    if ( ch & BIT_0010_0000 ) std::cout << '1'; else std::cout << '0';
    if ( ch & BIT_0001_0000 ) std::cout << '1'; else std::cout << '0';
    if ( ch & BIT_0000_1000 ) std::cout << '1'; else std::cout << '0';
    if ( ch & BIT_0000_0100 ) std::cout << '1'; else std::cout << '0';
    if ( ch & BIT_0000_0010 ) std::cout << '1'; else std::cout << '0';
    if ( ch & BIT_0000_0001 ) std::cout << '1'; else std::cout << '0';
    std::cout << '\n';
    return 0;
}