В настоящее время я работаю над проектом для школы, охватывающим манипуляции с битами.Мы должны показать биты для целой переменной без знака и позволить пользователю манипулировать ими, включать и выключать их и сдвигать.У меня есть все функциональные возможности, за исключением отображения битов после того, как ими манипулируют.Нам НЕ разрешается использовать набор битов для отображения битов, и это приведет к значительному снижению качества.
Я пытался использовать операторы if, чтобы определить, включены ли биты или нет, но, похоже, это неработатьВсякий раз, когда бит изменяется, он просто печатает множество нулей и единиц.
std::cout << "Bits: ";
for (int i = sizeof(int)*8; i > 0; i--)
{
if (a | (0 << i) == 1)
std::cout << 1;
if (a | (0 << i) == 0)
std::cout << 0;
}
std::cout << std::endl << a;
Я ожидаю, что если я включу бит, то этот бит будет отображать 1
вместо 0
, остальные биты остаются неизменными и по-прежнему отображают 0
;вместо этого он печатает строку 1010101
длиной около половины консоли.