2 числа (в каждом из четырех битов). Мне нужно эти все числа достать и сложить в другую строку. Делаю так:
первое число: m_Body[j] & 0xF
второе число: (m_Body[j] >> 4)
Если из запринтфить так printf("%d - %d", j, m_Body[j] & 0xF, (m_Body[j] >> 4) & 0xF) то выводятся 2 корректных числа.
Но если я пытаюст сделать так:
party.m_Number += (int)(m_Body[j] & 0xF);
party.m_Number += (int)((m_Body[j] >> 4) & 0xF);
То в строку пишется какое-то не очень: \0\x2\x6\t\x5\t\t\x1\a\x2\t\x4\x2\b\xF где часть чисел выглядит корректно, а часть вообще нет. Например, первые четыре цифры должны быть 0269. B в этом странном выводе я их тоже вижу, но вместо 9ки - мусор. Что я делаю не так?
А откуда строка берётся, что за тип у m_Number? Лучше вместо тысячи слов приложить код
Обсуждают сегодня