Я хочу напечатать десятичное значение 1010 в gdb
, , но он печатает результат так, как я это сделал последним.Как напечатать двоичное значение (1010) в десятичное значение (10) в GDB?
(gdb)
(gdb) p/d 1010
$1 = 1010
(gdb)
Я хочу напечатать десятичное значение 1010 в gdb
, , но он печатает результат так, как я это сделал последним.Как напечатать двоичное значение (1010) в десятичное значение (10) в GDB?
(gdb)
(gdb) p/d 1010
$1 = 1010
(gdb)
p
[rint
] команда выводит GDB в значение выражения вы предоставляете, который интерпретируется на языке оригинала программы отлаживается. В C ваш 1010
является десятичным литералом, а не бинарным литералом, поэтому ваша основная проблема заключается в том, что вы даете плохой ввод GDB.
Стандарт C не поддерживает бинарные литералы, но GNU C поддерживает их как расширение. Формат представляет собой двоичную цифровую строку, которой предшествуют 0b
или 0B
, которые вы, вероятно, узнаете как аналогичные стандартным форматам для шестнадцатеричных литералов. GDB распознает эту форму.
С print
Исходный радиус вывода по умолчанию для цифр десятичный, вам не нужно указывать выходной формат. Просто используйте команду
p 0b1010
Hi, thats работаю хорошо. –
https://www.cs.swarthmore.edu/~newhall/cs31/f13/WeeklyLabs/wlab02.php –