Ich absolviere einen College-Kurs über Betriebssysteme und wir lernen, wie man von binär zu hexadezimal, dezimal zu hexadezimal usw. konvertiert. Heute haben wir gerade gelernt, wie vorzeichenbehaftete / vorzeichenlose Zahlen unter Verwendung des Zweierkomplements (~ number) im Speicher gespeichert werden + 1).
Wir haben ein paar Übungen auf Papier zu machen und ich möchte meine Antworten überprüfen können, bevor ich meine Arbeit dem Lehrer vorlege. Ich habe ein C ++ - Programm für die ersten Übungen geschrieben, aber jetzt bin ich nicht sicher, wie ich meine Antwort mit dem folgenden Problem überprüfen kann:
char a, b;
short c;
a = -58;
c = -315;
b = a >> 3;
und wir müssen die binäre Darstellung zeigen , in dem Speicher von a
, b
und c
.
Ich habe es auf Papier gemacht und es gibt mir die folgenden Ergebnisse (alle binären Darstellungen im Speicher der Zahlen nach dem Komplement der beiden):
a = 00111010 (es ist ein Zeichen, also 1 Byte)
b = 00001000 (es ist ein Zeichen, also 1 Byte)
c = 11111110 11000101 (es ist kurz, also 2 Bytes)
Gibt es eine Möglichkeit, meine Antwort zu überprüfen? Gibt es in C ++ eine Standardmethode, um die binäre Darstellung im Speicher einer Zahl anzuzeigen, oder muss ich jeden Schritt selbst codieren (das Komplement der beiden berechnen und dann in binär konvertieren)? Ich weiß, dass Letzteres nicht so lange dauern würde, aber ich bin gespannt, ob es einen Standardweg gibt.
std::hex
) Manipulator drucken - ich überlasse es Ihnen als Übung, den Rest