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 un par de ejercicios que hacer en papel y me gustaría poder verificar mis respuestas antes de presentar 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 binaria en memoria de a
, b
y c
.
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 char, entonces 1 byte)
b = 00001000 (es un char, 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.
std::hex
) manipulador - Lo dejaré como un ejercicio para que pueda resolver el resto ...