2013-02-15 15 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