我可以用二进制打印吗?

Ale*_*lex 3 kernel linux-kernel

我有一个我需要调试的位图,而且用二进制而不是十进制来打印数字要容易得多.我可以这样做吗?

Yan*_*min 6

也许尝试十六进制或八进制:

printk("%02X", mybyte);
printk("%03o", mybyte);
Run Code Online (Sandbox Code Playgroud)

  • 十六进制('%x`)和八进制('%o`)都是打印输出位图的好选项,因为每个数字对应一个固定的位数(对于十六进制为4,对于八进制为3).不久就可以快速"看到"八进制数字作为3位二进制数. (3认同)

mpe*_*mpe 5

有一个函数可以在 中打印二进制值arch/parisc/kernel/traps.c,称为printbinary()。您可以将其复制到您的代码中(或者,如果您碰巧在巴黎,则只需将其链接)。最好还是将它移动到内核树中的某个通用位置,例如。lib,并将补丁发送到 LKML。