Я хотел бы использовать побитовое отрицание для данных, которые хранятся в объекте stringstream.Следующий код работает нормально:
std::uint8_t x = 0x01;
x = ~x;
std::stringstream buf;
buf << x;
std::string data = buf.str();
std::cout << std::hex << static_cast<int>(data[0]) << std::endl;
//result: fffffffe
Когда я использую побитовое отрицание таким образом:
std::uint8_t x = 0x01;
std::stringstream buf;
buf << ~x;
std::string data = buf.str();
std::cout << std::hex << static_cast<int>(data[0]) << std::endl;
//result: 0x2d
Я получаю неожиданный результат.Как это объяснить?Как использовать побитовое отрицание с оператором <<? </p>