Что вы намереваетесь хранить в переменной one
?
Код, как написано, сохранит символ ASCII 0x01
в one
. Это управляющий символ, а не печатный символ. Если вы ищете цифру 1, то вам нужно прямо сказать:
char one = '1';
Хранит фактический символ, а не код ASCII 0x01
.
Если вы пытаетесь преобразовать число в строковое представление этого числа, вам нужно использовать один из этих механизмов . Если вместо этого вы пытаетесь обработать 32-разрядное целое число как последовательность из 4 байтов, каждый из которых является символом ASCII, это другой вопрос. Для этого вы можете сделать это:
uint32_t someNumber = 0x12345678;
std::string myString(4, ' ');
myString[0] = static_cast<char>((someNumber >> 24) & 0xFF);
myString[1] = static_cast<char>((someNumber >> 16) & 0xFF);
myString[2] = static_cast<char>((someNumber >> 8) & 0xFF);
myString[3] = static_cast<char>((someNumber) & 0xFF);