Ich möchte den Dezimalwert von 1010 in gdb
, drucken, aber es druckt das Ergebnis, wie es ist, was ich zuletzt gab.Wie wird ein Binärwert (1010) in GDB in den Dezimalwert (10) geschrieben?
(gdb)
(gdb) p/d 1010
$1 = 1010
(gdb)
Ich möchte den Dezimalwert von 1010 in gdb
, drucken, aber es druckt das Ergebnis, wie es ist, was ich zuletzt gab.Wie wird ein Binärwert (1010) in GDB in den Dezimalwert (10) geschrieben?
(gdb)
(gdb) p/d 1010
$1 = 1010
(gdb)
der GDB p
[rint
] Befehl druckt den Wert des Ausdrucks Sie schaffen, die in der Ausgangssprache des Programms interpretiert wird gedebuggt wird. In C ist Ihr 1010
ein Dezimal-Literal, kein binäres Literal, also ist Ihr grundlegendes Problem, dass Sie GDB schlechte Eingabe geben.
Standard C unterstützt keine Binärliterale, aber GNU C unterstützt sie als Erweiterung. Das Format ist eine binäre Ziffernfolge, der 0b
oder 0B
vorausgeht, die Sie wahrscheinlich als analog zum Standardformat für hexadezimale Literale erkennen werden. GDB erkennt dieses Formular.
Da print
die Standardausgabe für Nummern radix ist, müssen Sie kein Ausgabeformat angeben. Verwenden Sie einfach den Befehl
p 0b1010
Hallo, das funktioniert gut. –
https://www.cs.swarthmore.edu/~newhall/cs31/f13/WeeklyLabs/wlab02.php –