我可以用二进制打印吗?

时间:2010-12-01 06:03:53

标签: linux-kernel kernel

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

3 个答案:

答案 0 :(得分:6)

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

printk("%02X", mybyte);
printk("%03o", mybyte);

答案 1 :(得分:4)

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

答案 2 :(得分:1)

printk使用sprintf,其行为与printf相同。这意味着你不能用二进制打印。二进制文件没有格式说明符,因此您必须编写自己的函数。您可以使用循环将数字转换为其二进制表示的字符串,然后打印该字符串。