¿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.