sprintfで変数の中身表示するときに
8bitは255までだからmax3桁
16bitは65535までだからmax5桁
・・・
と決め打ちしてchar temp[4];とかしてもOKですか?
(4なのは'\0'分余計に取ってるつもり)