1
我想在gdb
, 中打印1010的十进制值,但它会打印结果,因为它是我最后给出的结果。你提供的表达,这是在该程序的源语言解释的如何在GDB中将二进制值(1010)打印成十进制值(10)?
(gdb)
(gdb) p/d 1010
$1 = 1010
(gdb)
我想在gdb
, 中打印1010的十进制值,但它会打印结果,因为它是我最后给出的结果。你提供的表达,这是在该程序的源语言解释的如何在GDB中将二进制值(1010)打印成十进制值(10)?
(gdb)
(gdb) p/d 1010
$1 = 1010
(gdb)
的p
[rint
]命令打印的值被调试。在C中,你的1010
是一个十进制文字,而不是一个二进制文字,所以你的基本问题是你给GDB糟糕的输入。
标准C不支持二进制文字,但GNU C支持它们作为扩展。格式是一个二进制数字字符串,前面为0b
或0B
,您可能认为它与十六进制文字的标准格式类似。 GDB认识到这种形式。
由于print
的数字的默认输出基数是十进制,因此不需要指定输出格式。只是使用命令
p 0b1010
嗨,这是工作正常。 –
https://www.cs.swarthmore.edu/~newhall/cs31/f13/WeeklyLabs/wlab02.php –