C++ 将整数转换为二进制字符串?

C++ 将整数转换为二进制字符串?,c++,C++,我必须将一个整数(从0到225)转换成一个8字符的二进制字符串,我一直在尝试使用位集,但我没有任何运气。如何将整数转换为8个字符的二进制字符串 我认为您使用位集的方式很好。不知道您的位集有哪些问题,但请尝试以下方法。请注意,可以使用各种类型的值初始化位集,其中一种为整数类型: int main() { int value = 201; std::bitset<8> bs(value); cout << bs.to_string(); } intm

我必须将一个整数(从0到225)转换成一个8字符的二进制字符串,我一直在尝试使用位集,但我没有任何运气。如何将整数转换为8个字符的二进制字符串

我认为您使用
位集的方式很好。不知道您的
位集有哪些问题,但请尝试以下方法。请注意,可以使用各种类型的值初始化位集,其中一种为整数类型:

int main() {
    int value = 201;
    std::bitset<8> bs(value);
    cout << bs.to_string();
}
intmain(){
int值=201;
std::位集bs(值);

我想,您使用
位集的方法很好。不知道您在
位集
方面遇到了哪些问题,但请尝试以下方法。请注意,位集可以用各种类型的值初始化,其中一种是整数类型:

int main() {
    int value = 201;
    std::bitset<8> bs(value);
    cout << bs.to_string();
}
intmain(){
int值=201;
std::位集bs(值);

cout这在没有
位集的情况下很容易做到,只是作为一种替代解决方案:

std::string ucharToBitString(unsigned char x)
{
    std::string s = "";
    for(int i = 0; i < 8; i++)
    {
        s += (x & 128) ? "1" : "0" ;
        x <<= 1;
    }
    return s;
}
std::字符串ucharToBitString(无符号字符x)
{
std::string s=“”;
对于(int i=0;i<8;i++)
{
s+=(x&128)?“1”:“0”;

x这在没有
位集的情况下非常容易做到,只是作为替代解决方案:

std::string ucharToBitString(unsigned char x)
{
    std::string s = "";
    for(int i = 0; i < 8; i++)
    {
        s += (x & 128) ? "1" : "0" ;
        x <<= 1;
    }
    return s;
}
std::字符串ucharToBitString(无符号字符x)
{
std::string s=“”;
对于(int i=0;i<8;i++)
{
s+=(x&128)?“1”:“0”;

欢迎使用Stack Overflow!您能告诉我们您到目前为止尝试了什么吗?编写一个循环,从整数中获取每一位,然后根据位的值将字符
'0'
'1'
添加到字符串中。搜索稍微困难一点,这已经被询问并回答了至少六次,仅计算Stack Overflow。See我最终使用了while循环,感谢while(val!=0){s=(val%2==0?“0”:“1”)+s;val/=2;}欢迎使用Stack Overflow!您能告诉我们您到目前为止尝试了什么吗?编写一个循环,从整数中获取每一位,然后根据位的值将字符
'0'
'1'
添加到字符串中。搜索稍微困难一点,这已经被询问并回答了至少六次,仅计算Stack Overflow。请参阅我最终使用了while循环,感谢while(val!=0){s=(val%2==0?“0”:“1”)+s;val/=2;}您可能需要指出这是最高有效位优先还是最低有效位优先。感谢您的回复,我最终使用了while循环!您可能需要指出这是最高有效位优先还是最低有效位优先。感谢您的回复,我最终使用了while循环!