-char* ustoa(unsigned short value, char* buffer, uint8_t radix){
- if((radix>36) || (radix<2) || (buffer==NULL)){
- return NULL;
- }
- unsigned length=(unsigned)-1;
- uint8_t x;
- char c;
- do{
- x = value%radix;
- value /= radix;
- if(x<10){
- c = x+ '0';
- }else{
- c = x+ 'a';
- }
- buffer[++length] = c;
- }while(value);
- buffer[length+1]='\0';
- unsigned idx=0;
- while(idx+1<length){
- c = buffer[idx];
- buffer[idx++] = buffer[length];
- buffer[length--] = c;
- }
- return buffer;
+char* ustoa(unsigned short a, char* buffer, uint8_t radix){
+ return ultoa((unsigned long)a, buffer, radix);