void toHex(int s, char *d){
for(;s>0;s/=16)*d++=s%16+(s%16<10?48:55);*d='\0';
}

左右逆だしマイナス未対応だし。
誰かなんとかしる。