Wie drucke ich (mit cout) eine Zahl in binärer Form?
Posted: 15 Jan 2025, 16:39
Ich besuche gerade einen College-Kurs über Betriebssysteme und wir lernen, wie man von binär in hexadezimal, dezimal in hexadezimal usw. konvertiert. Und heute haben wir gerade gelernt, wie vorzeichenbehaftete/vorzeichenlose Zahlen mithilfe des Zweierkomplements im Speicher gespeichert werden (~Zahl + 1).
Wir müssen ein paar Übungen auf Papier machen und ich möchte meine Antworten überprüfen können, bevor ich meine Arbeit dem Lehrer vorlege. Ich habe für die ersten paar Übungen ein C++-Programm geschrieben, aber jetzt weiß ich nicht, wie ich meine Antwort mit dem folgenden Problem überprüfen kann:
und wir müssen die binäre Darstellung im Speicher von a, b und c zeigen.
Ich habe es auf Papier gemacht und es liefert mir die folgenden Ergebnisse (alle binären Darstellungen im Speicher der Zahlen nach dem Zweierkomplement):
a = 00111010 (es ist ein Zeichen, also 1 Byte)
b = 00001000 (es ist ein Zeichen, also 1 Byte)
c = 11111110 11000101 (es ist ein Short, also 2 Bytes)< /p>
Gibt es eine Möglichkeit, meine Antwort zu überprüfen? Gibt es in C++ eine Standardmethode, um die binäre Darstellung einer Zahl im Speicher anzuzeigen, oder muss ich jeden Schritt selbst codieren (das Zweierkomplement berechnen und dann in eine Binärdarstellung konvertieren)? Ich weiß, dass Letzteres nicht so lange dauern würde, aber ich bin gespannt, ob es dafür eine Standardmethode gibt.
Wir müssen ein paar Übungen auf Papier machen und ich möchte meine Antworten überprüfen können, bevor ich meine Arbeit dem Lehrer vorlege. Ich habe für die ersten paar Übungen ein C++-Programm geschrieben, aber jetzt weiß ich nicht, wie ich meine Antwort mit dem folgenden Problem überprüfen kann:
Code: Select all
char a, b;
short c;
a = -58;
c = -315;
b = a >> 3;
Ich habe es auf Papier gemacht und es liefert mir die folgenden Ergebnisse (alle binären Darstellungen im Speicher der Zahlen nach dem Zweierkomplement):
a = 00111010 (es ist ein Zeichen, also 1 Byte)
b = 00001000 (es ist ein Zeichen, also 1 Byte)
c = 11111110 11000101 (es ist ein Short, also 2 Bytes)< /p>
Gibt es eine Möglichkeit, meine Antwort zu überprüfen? Gibt es in C++ eine Standardmethode, um die binäre Darstellung einer Zahl im Speicher anzuzeigen, oder muss ich jeden Schritt selbst codieren (das Zweierkomplement berechnen und dann in eine Binärdarstellung konvertieren)? Ich weiß, dass Letzteres nicht so lange dauern würde, aber ich bin gespannt, ob es dafür eine Standardmethode gibt.