将int转换为基数2 cstring/string

Sch*_*ler 3 c++ string int cstring

在我的PC上的visual studio中,我可以使用itoa()将基数为10的int转换为基数为2的c-string.但是当我在Linux机器上时,不支持该功能.还有另一种快速的方式来进行这种转换吗?我知道如何使用字符串流,我可以使用分割和修改手动转换为另一个基础.

我只是跳了一下,有一种更简单的方法来访问int的二进制表示.

Die*_*ühl 5

您可以使用std::bitset<N>合适的N(例如std::numeric_limits<int>::digits):

std::string bits = std::bitset<10>(value).to_string();
Run Code Online (Sandbox Code Playgroud)

请注意,ints只表示一个值.它们当然不是基数10,尽管这是格式化它们时使用的默认基础(可以使用std::oct和轻松更改为八进制或十六进制std::hex).如果有的话,ints实际上是用base 2表示的.