如何在 GDB 中将二进制值(1010)打印成十进制值(10)?

Kir*_*ran 6 c unix linux gdb

我想在 中打印 1010 的十进制值gdb,但它打印的结果是我最后给出的结果。

(gdb) 
(gdb) p/d 1010
$1 = 1010
(gdb)
Run Code Online (Sandbox Code Playgroud)

Joh*_*ger 6

GDB 的p[ rint] 命令打印您提供的表达式的值,该值以被调试程序的源语言解释。在 C 中,您1010是十进制文字,而不是二进制文字,因此您的基本问题是您给 GDB 输入错误。

标准 C 不支持二进制文字,但 GNU C 支持它们作为扩展。格式是一个以0b或开头的二进制数字字符串0B,您可能会认为它类似于十六进制文字的标准格式。GDB 认可这种形式。

由于print数字的默认输出基数是十进制,因此您无需指定输出格式。只需使用命令

p 0b1010
Run Code Online (Sandbox Code Playgroud)