поскольку мы знаем, что itoa пытается преобразовать целое число в любой базе, кроме массива char, имеющего фиксированный размер, я пытаюсь найти альтернативу, которая может выполнять ту же работу, но преобразовывать в строку с базой 2 в c ++.
Вы можете легко написать свой собственный.
void my_itoa(int value, std::string& buf, int base){
int i = 30;
buf = "";
for(; value && i ; --i, value /= base) buf = "0123456789abcdef"[value % base] + buf;
}
Это было взято из этот сайт, наряду со многими другими альтернативами.
Для C ++ 11 вы можете использовать bitset
а также to_string
,
#include <iostream>
#include <bitset>
using namespace std;
int main() {
// your code goes here
cout << bitset<4>(10).to_string() << endl;
return 0;
}