+void xtoa(unsigned int val, char *buf)
+{
+ char rbuf[16];
+ char *ptr = rbuf;
+
+ if(val == 0) {
+ *ptr++ = '0';
+ }
+
+ while(val) {
+ unsigned int digit = val & 0xf;
+ *ptr++ = digit < 10 ? (digit + '0') : (digit - 10 + 'a');
+ val >>= 4;
+ }
+
+ ptr--;
+
+ while(ptr >= rbuf) {
+ *buf++ = *ptr--;
+ }
+ *buf = 0;
+}
+