¿Cómo imprimir (usando cout) la forma en que se almacena un número en la memoria?

Estoy siguiendo un curso universitario sobre sistemas operativos y estamos aprendiendo cómo convertir de binario a hexadecimal, decimal a hexadecimal, etc. y hoy aprendimos cómo los números con signo / sin signo se almacenan en la memoria usando el complemento de dos (~ número + 1).

Tenemos que hacer un par de ejercicios en papel y me gustaría poder verificar mis respuestas antes de enviar mi trabajo al maestro. Escribí un programa en C ++ para los primeros ejercicios, pero ahora no sé cómo puedo verificar mi respuesta con el siguiente problema:

char a, b;

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

b = a >> 3;

y necesitamos mostrar la representación binariaen memori dea, b yc.

Lo hice en papel y me da los siguientes resultados (todas las representaciones binarias en memoria de los números después del complemento de dos):

a = 00111010 (es un carácter, entonces 1 byte)

b = 00001000 (es un carácter, entonces 1 byte)

c = 11111110 11000101 (es un corto, entonces 2 bytes)

¿Hay alguna forma de verificar mi respuesta? ¿Hay una forma estándar en C ++ para mostrar la representación binaria en la memoria de un número, o tengo que codificar cada paso yo mismo (calcular el complemento de dos y luego convertirlo a binario)? Sé que esto último no llevaría tanto tiempo, pero tengo curiosidad por saber si hay una forma estándar de hacerlo.

Respuestas a la pregunta(9)

Su respuesta a la pregunta