从 ascii 到位但不是相反

from ascii to bits but not working the contrary

我陷入了这个问题。

我正在编写一个 C++ 程序,其中:

1- 你写了一个 6 个字符的字符串

2- 该字符串被转换为位(我们称之为 'A')

3- 这串位被复制到另一个字符串中并通过 reverse() 方法还原(我们称之为 'B')

4-在A和B之间执行按位或(我们称此结果为'C')

5-(这是我被卡住的地方)C 应该转换成 ASCII...但我不是。我得到输出奇怪的 symbols/question 标记。

代码如下:

#include <iostream>
#include <bitset>
#include <sstream>
#include <string>
#include <algorithm>
using namespace std;

int main()
{

    // PART ONE: from string to bits
    string input;
    cout << "Insert the 6 letters string you want to convert: \n";
    do
    {
        getline(cin, input);
        if (input.length() < 6 || input.length() > 6)
        {
            cout << "\nIt must be 6 letters!\n";
        }
    } while (input.length() != 6);

    string inbits;
    bitset<8> newbits;
    for (size_t i = 0; i < input.size(); ++i)
    {
        newbits = bitset<8>(input.c_str()[i]);
        string aux = newbits.to_string<char, std::string::traits_type, std::string::allocator_type>();
        inbits.append(aux);
    }
    cout << endl << inbits << endl;

    // PART TWO: bitwise or
    string inverted = inbits;
    reverse(inverted.begin(), inverted.end());
    bitset<48> bstr1(inbits), bstr2(inverted), finale;
    finale = bstr1 | bstr2; // here it is done the bitwise OR
    cout << finale << endl;
    string ored = finale.to_string<char, std::string::traits_type, std::string::allocator_type>();

    // PART THREE: from bits to string of char
    stringstream sstream(ored);
    string aux = "";
    while (sstream.good())
    {
        bitset<8> bits;
        sstream >> bits;
        char c = char(bits.to_ulong());
        aux += c;
    }
    cout << "the ored string is: " << aux << endl;
}

我不知道出了什么问题。我的意思是,它可能是一种“"overflow"”,但是 它只是没有任何意义。 我该如何进行?

(抱歉我的英语不好,这是我第一次在这里开帖,我有点不确定如何移动到这里)

如果您的结果不在 0x41 到 0x5A 范围内,您将不会得到按字母顺序排列的结果: Link to the ascii table site