>>124
存在しないバージョンでどうしようもないけど

char buf[5];
int i;
sprintf(buf,"%4x",(unsigned)i);

で足りるんじゃね?