2013-02-15 30 views
1

printf("%d, ", packet[i]);如何正确显示从USB设备[ANSI C]

我有个问题与显示用变量的值。它应该是从0到255 但如果使用%d它打印:

screen

-1为255

正确显示的数字128,较大的为负。

当我使用%u它打印的,而不是4294967295 255

+0

这可能是因为你正在阅读一个32位数字。尝试读入一个8位数字(例如'char')。你用什么代码从它读取? – slugonamission 2013-02-15 20:11:06

回答

3

使用%hhu转换规范:

printf("%hhu, ", packet[i]); 
+0

Yap。那是。 +1。 – 2013-02-15 20:13:11

+0

辉煌,谢谢你 – QuRa 2013-02-15 20:25:50

+0

@QuRa不客气。 – ouah 2013-02-15 20:27:08

0

如果你要打印的字节,您也可以考虑印刷用十六进制%02X