The task is to output the sequence of binary digits for a given non-negative integer.
The decimal value 5, should produce an output of 101 The decimal value 50 should produce an output of 110010 The decimal value 9000 should produce an output of 10001100101000
The results can be achieved using builtin radix functions within the language, if these are available, or alternatively a user defined function can be used. The output produced should consist just of the binary digits of each number followed by a newline. There should be no other whitespace, radix or sign markers in the produced output, and leading zeros should not appear in the results.
#include <bitset> #include <iostream> #include <limits> #include <string> void print_bin(unsigned int n) { std::string str = "0"; if (n > 0) { str = std::bitset<std::numeric_limits<unsigned int>::digits>(n).to_string(); str = str.substr(str.find('1')); // remove leading zeros } std::cout << str << '\n'; } int main() { print_bin(0); print_bin(5); print_bin(50); print_bin(9000); }
Output:
0 101 110010 10001100101000
Content is available under GNU Free Documentation License 1.2.