Converting an int into a base 2 cstring/string

c++, cstring, int, string

Solution

You could use `std::bitset<N>` with a suitable `N` (e.g., `std::numeric_limits<int>::digits`):

std::string bits = std::bitset<10>(value).to_string();

Note that `int`s just represent a value. They are certainly not base 10 although this is the default base used when formatting them (which can be easily change to octal or hexadecimal using `std::oct` and `std::hex`). If anything, `int`s are actually represented using base 2.

Problem

In visual studio on my PC I can use itoa() to convert from a base ten int to a base 2 c-string. However when I am on a Linux machine that function isn't supported. Is there another quick way of doing this kind of conversion? I know how to use a string stream and I can use the dividing and modding to convert to another base manually. I was just hopping that there was an easier way of accessing the binary representation of an int.

Original source