Je suis en suivant un cours de niveau collégial sur les systèmes d'exploitation et nous apprenons comment faire pour passer du binaire à l'hexadécimal, décimal en hexadécimal, etc. et aujourd'hui, nous venons d'apprendre comment signed/unsigned numéros sont stockés dans la mémoire en utilisant le complément à deux (~+1).
Nous avons un couple d'exercices à faire sur papier et je voudrais être en mesure de vérifier mes réponses avant de soumettre mon travail à l'enseignant. J'ai écrit un programme en C++ pour les premiers exercices, mais maintenant je suis bloqué, comment j'ai pu vérifier ma réponse avec le problème suivant:
char a, b;
short c;
a = -58;
c = -315;
b = a >> 3;
et nous avons besoin de montrer la représentation binaire dans la mémoire de l' a
, b
et c
.
Je l'ai fait sur papier, et il me donne les résultats suivants (toutes les représentations binaires dans la mémoire des numéros après le complément à deux):
a = 00111010 (c'est un char, donc 1 octet)
b = 00001000 (c'est un char, donc 1 octet)
c = 11111110 11000101 (c'est un court, donc 2 octets)
Est-il un moyen de vérifier ma réponse? Est-il un moyen standard en C++ pour montrer la représentation binaire en mémoire d'un numéro, ou dois-je code à chaque étape de moi-même (calculer le complément à deux et ensuite de les convertir en binaire)? Je sais que ce dernier ne serait pas si long, mais je suis curieux de savoir si il existe un moyen standard pour le faire.
Merci pour votre aide (je ne pouvais pas trouver une question avec un sujet similaire avec les mots-clés je sais donc je suis désolé si ce n'est une sorte de double emploi).
Aussi, je ne savais pas vraiment lequel des balises pour choisir de se sentir libre de les modifier en conséquence.