C++ 为什么赢了';我的十进制到二进制输出不是反向的吗?

C++ 为什么赢了';我的十进制到二进制输出不是反向的吗?,c++,binary,decimal,C++,Binary,Decimal,我正在使用while循环进行一些简单的十进制到二进制的转换,我意识到循环的输出需要反转,我通过创建一个stringstream,然后将生成的int移动到一个stringstream,该stringstream将其转换为字符串,然后反转字符串的顺序以获得正确的二进制值来实现这一点。。。但是当我实际运行代码时,在所有的东西前面都有一个随机的1或0 #include <iostream> #include <sstream> #include <algorithm>

我正在使用while循环进行一些简单的十进制到二进制的转换,我意识到循环的输出需要反转,我通过创建一个stringstream,然后将生成的int移动到一个stringstream,该stringstream将其转换为字符串,然后反转字符串的顺序以获得正确的二进制值来实现这一点。。。但是当我实际运行代码时,在所有的东西前面都有一个随机的1或0

#include <iostream>
#include <sstream>
#include <algorithm>

int main() {
    std::stringstream ss;
    int decimal;
    int binary;
    std::cout<< "\n Please enter decimal value: ";
    std::cin >> decimal;
    std::cout << "\n The binary equivalent of " << decimal << " is ";
    while(decimal > 0 ) {
        binary = decimal % 2;

        decimal/= 2;

        std::cout << binary;

    }
    ss << binary;
    std::string binary_string = ss.str();
    std::reverse(binary_string.begin(), binary_string.end());
    std::cout << binary_string;
}
对于12:

Please enter decimal value: 12

The binary equivalent of 12 is 00111

有两个问题


  • ss额外的位来自

    ss << binary;
    string binary_string = ss.str();
    reverse(binary_string.begin(), binary_string.end());
    cout << binary_string;
    
    ss请提供一个。
    
    int decimal;
    int binary;
    cout<< "\n Please enter decimal value: ";
    cin >> decimal;
    cout << "\n The binary equivalent of " << decimal << " is ";
    while(decimal > 0 ) {
        binary = decimal % 2;
    
        decimal/= 2;
        ss << binary;
    
    }
    
    string binary_string = ss.str();
    reverse(binary_string.begin(), binary_string.end());
    cout << binary_string;
    
    }
    
    ss << binary;
    string binary_string = ss.str();
    reverse(binary_string.begin(), binary_string.end());
    cout << binary_string;