Я прохожу курс обучения в колледже по операционным системам, и мы учимся, как преобразовывать двоичные числа в шестнадцатеричные, десятичные в шестнадцатеричные и т. Д., И сегодня мы только что узнали, как числа со знаком / без знака хранятся в памяти с помощью дополнения к двум. (~ число + 1).
У нас есть пара упражнений на бумаге, и я хотел бы иметь возможность проверить свои ответы, прежде чем отправлять свою работу учителю. Я написал программу на C ++ для первых нескольких упражнений, но теперь я застрял в том, как я могу проверить свой ответ со следующей проблемой:
char a, b;
short c;
a = -58;
c = -315;
b = a >> 3;
и нам нужно показать двоичное представление в памяти из a
, b
и c
.
Я сделал это на бумаге, и он дает мне следующие результаты (все двоичные представления в памяти чисел после дополнения к двум):
a = 00111010 (это символ, поэтому 1 байт)
b = 00001000 (это символ, поэтому 1 байт)
c = 11111110 11000101 (это короткий, поэтому 2 байта)
Есть ли способ проверить мой ответ? Есть ли в C ++ стандартный способ показать двоичное представление в памяти числа или я должен сам кодировать каждый шаг (вычислить дополнение к двум и затем преобразовать в двоичный код)? Я знаю, что последнее не займет много времени, но мне любопытно, есть ли стандартный способ сделать это.