Я изучаю курс об операционных системах в колледже, и мы учимся преобразовывать двоичные числа в шестнадцатеричные, десятичные в шестнадцатеричные и т.д., а сегодня мы только что узнали, как подписанные/неподписанные числа хранятся в памяти с использованием дополнения (~номер + 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 байта)
Есть ли способ проверить мой ответ? Есть ли стандартный способ в Си++ показать двоичное представление в памяти числа, или мне самому нужно кодировать каждый шаг (вычислять двойное дополнение и затем преобразовывать в двоичное)? Я знаю, что последнее не займет так много времени, но мне любопытно, есть ли стандартный способ сделать это.