Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: ffoxin on May 4th, 2012  |  syntax: C++  |  size: 0.86 KB  |  hits: 17  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <iostream>
  2.  
  3.  
  4. void bin_out( unsigned number )
  5. {
  6.         bool pos        = false;
  7.         bool first      = false;
  8.  
  9.         for( size_t i = sizeof( number ) * 8; i > 0; --i )
  10.         {
  11.                 pos = ( number & ( 1 << ( i - 1 ) ) ) ? 1 : 0;
  12.                 first = first || pos;
  13.                 std::cout << ( first ? ( pos ? "1" : "0" ) : " " );
  14.         }
  15.         std::cout << std::endl;
  16. }
  17.  
  18. unsigned mask( size_t length )
  19. {
  20.         if( length > sizeof( unsigned ) * 8 )
  21.         {
  22.                 length = sizeof( unsigned ) * 8;
  23.                 std::cout << "Too large length. Truncated to " << length << std::endl;
  24.         }
  25.  
  26.         unsigned mask = 0;
  27.  
  28.         for( size_t i = 0; i < length; ++i )
  29.                 mask |= 1 << i;
  30.  
  31.         return mask;
  32. }
  33.  
  34. int main( int argc, char **argv )
  35. {
  36.         int num;
  37.         int length;
  38.         std::cout << "Enter the number and mask length:" << std::endl;
  39.         std::cin >> num >> length;
  40.  
  41.         bin_out( num );
  42.         bin_out( mask( length ) );
  43.         bin_out( num & mask( length ) );
  44.  
  45.  
  46.         return 0;
  47. }