// @topic W120101 int to binary string conversion
// @brief Demonstrates bit shift operators in C/C++
// display_bits.cpp
#include <iostream>
#include <cstdlib>
void print_binary_number( int value );
int main()
{
int inp;
for(;;) {
std::cout << "\nEnter a number: ";
std::cin >> inp;
print_binary_number( inp );
}
system( "pause" );
return 0;
}
void print_binary_number( int value )
{
// calculate number of bits in int
const unsigned int NUMBER_OF_BITS = sizeof( int ) * 8u;
unsigned int loop_count = NUMBER_OF_BITS;
// set highest bit in mask to 1:
unsigned int mask = ( 1u << ( NUMBER_OF_BITS - 1u ) );
// print bits of value
while ( loop_count-- ) {
if (value & mask) {
std::cout << '1';
} else {
std::cout << '0';
}
if (loop_count % 8 == 0) std::cout << ' ';
mask >>= 1;
}
std::cout << '\n';
}