2010-12-01 5 views
3

Ich habe eine Bitmap, die ich debuggen muss, und es wäre viel einfacher für mich, die Zahl binär statt dezimal zu drucken. Darf ich das machen?Kann ich in binär drucken?

Antwort

4

Es gibt eine Funktion zum Drucken eines Binärwerts in arch/parisc/kernel/traps.c, genannt printbinary(). Sie können es in Ihren Code kopieren (oder einfach verlinken, wenn Sie zufällig auf Parisc sind). Besser noch verschieben Sie es irgendwo generisch in der Kernel-Baum, z. lib, und senden Sie einen Patch an LKML.

6

versuchen Vielleicht hex oder Oktal:

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

Hex ('% x') und Octal ('% o') sind beide gute Möglichkeiten zum Ausdrucken von Bitmaps, da jede Ziffer einer festen Anzahl von Bits entspricht (4 für Hex, 3 für Oktal). Es dauert nicht lange, bis Sie oktale Ziffern als ihre dreistelligen Binäräquivalente schnell "sehen" können. – caf

1

printk sprintf verwendet, die printf identisch verhält. Das bedeutet, dass Sie nicht in Binärdateien drucken können. Es gibt keinen Formatbezeichner für Binärdateien, daher müssen Sie die Funktion selbst schreiben. Sie können eine Schleife verwenden, um eine Zahl in eine Zeichenfolge ihrer Binärdarstellung zu konvertieren und dann diese Zeichenfolge zu drucken.