#include <common.h>
#include "conv.h"
/* 文字列処理、printfの代用品 */
char *uint2string(unsigned int i, char *buffer){
unsigned int digit;
unsigned int power;
unsigned char hit = FALSE;
for(power = 10000000; power > 1; power /= 10){
digit = i / power;
if(digit > 0){hit = TRUE;}
if(hit){*(buffer++) = digit + '0';}
i -= digit * power;
}
*(buffer++) = i + '0';
return buffer;
}
char *ushort2string(unsigned short i, char *buffer){
unsigned short digit;
unsigned short power;
unsigned char hit = FALSE;
for(power = 10000; power > 1; power /= 10){
digit = i / power;
if(digit > 0){hit = TRUE;}
if(hit){*(buffer++) = digit + '0';}
i -= digit * power;
}
*(buffer++) = i + '0';
return buffer;
}
char *short2string(short i, char *buffer){
if(i < 0){
*(buffer++) = '-';
i *= -1;
}
return ushort2string((unsigned short)i, buffer);
}
char *long2string(long l, char *buffer){
if(l < 0){*(buffer++) = '-'; l *= -1;}
int digit;
long power;
unsigned char hit = FALSE;
for(power = 1000000000; power > 1; power /= 10){
digit = l / power;
if(digit > 0){hit = TRUE;}
if(hit){*(buffer++) = digit + '0';}
l -= digit * power;
}
*(buffer++) = l + '0';
return buffer;
}
inline char *crlf(char *buffer){
*(buffer++) = '\r';
*(buffer++) = '\n';
return buffer;
}
inline char *null_char(char *buffer){
*(buffer++) = '\0';
return buffer;
}