Как распечатать (используя cout) число в двоичном виде?

Я изучаю курс об операционных системах в колледже, и мы учимся преобразовывать двоичные числа в шестнадцатеричные, десятичные в шестнадцатеричные и т.д., а сегодня мы только что узнали, как подписанные/неподписанные числа хранятся в памяти с использованием дополнения (~номер + 1).

Нам нужно выполнить пару упражнений на бумаге, и я хотел бы иметь возможность проверить свои ответы перед тем, как отправлять работу учителю. Я написал программу на С++ для первых нескольких упражнений, но теперь я застрял в том, как я могу проверить свой ответ со следующей проблемой:

char a, b;

short c;
a = -58;
c = -315;

b = a >> 3;

и нам нужно показать двоичное представление в памяти из a, b и c.

Я сделал это на бумаге, и это дает мне следующие результаты (все двоичные представления в памяти чисел после дополнения двух):

a = 00111010 (это char, значит 1 байт)

b = 00001000 (это char, значит 1 байт)

c = 11111110 11000101 (это короткое, значит 2 байта)

Есть ли способ проверить мой ответ? Есть ли стандартный способ в Си++ показать двоичное представление в памяти числа, или мне самому нужно кодировать каждый шаг (вычислять двойное дополнение и затем преобразовывать в двоичное)? Я знаю, что последнее не займет так много времени, но мне любопытно, есть ли стандартный способ сделать это.

194
задан L. F. 1 August 2019 в 21:22
поделиться