Je suis un cours universitaire sur les systèmes d'exploitation et nous apprenons à convertir du binaire en hexadécimal, décimal en hexadécimal, etc. et aujourd'hui, nous venons d'apprendre comment les nombres signés / non signés sont stockés en mémoire en utilisant le complément à deux (~ nombre + 1).
Nous avons quelques exercices à faire sur papier et j'aimerais pouvoir vérifier mes réponses avant de soumettre mon travail à l'enseignant. J'ai écrit un programme C ++ pour les premiers exercices mais maintenant je suis bloqué sur la façon dont je pourrais vérifier ma réponse avec le problème suivant:
char a, b;
short c;
a = -58;
c = -315;
b = a >> 3;
et nous devons montrer la représentation binaire en mémoire de a
, b
et c
.
Je l'ai fait sur papier et cela me donne les résultats suivants (toutes les représentations binaires en mémoire des nombres après le complément à deux):
a = 00111010 (c'est un caractère, donc 1 octet)
b = 00001000 (c'est un caractère, donc 1 octet)
c = 11111110 11000101 (c'est un court, donc 2 octets)
Existe-t-il un moyen de vérifier ma réponse? Existe-t-il un moyen standard en C ++ d'afficher la représentation binaire en mémoire d'un nombre, ou dois-je coder chaque étape moi-même (calculer le complément à deux puis convertir en binaire)? Je sais que ce dernier ne prendrait pas autant de temps, mais je suis curieux de savoir s'il existe un moyen standard de le faire.
std::hex
) manipulateur - je vais le laisser comme un exercice pour que vous puissiez résoudre le reste ...