📄 datatran.c
字号:
#include <macros.h>
#include "datatran.h"
unsigned char uint_to_ascii(unsigned int uivalue,unsigned char *string)
{
unsigned char chbuf[5],*outbuf,j;
signed char i;
outbuf=string;
i=0;
while(uivalue>9 && i<4)
{
// zero is ascii 48:
chbuf[i]=(unsigned char) ((uivalue-((uivalue/10)*10))+48);
uivalue=uivalue/10;
i++;
}
chbuf[i]=(unsigned char) (uivalue+48); // most significant digit
j = i+1;
while(i>=0)
{
*outbuf=chbuf[i];
i--;
outbuf++;
}
*outbuf=0;
return j;
}
void int_to_ascii(signed int ivalue,unsigned char *string)
{
unsigned char chbuf[5],*outbuf;
signed char i,j;
outbuf=string;
if(ivalue<0) {*outbuf='-'; //去除符号位
ivalue=~ivalue+1;
}
else {*outbuf=0x80;
}
outbuf++;
i=0;
while(ivalue>9 && i<4)
{
chbuf[i]=(unsigned char) ((ivalue-((ivalue/10)*10))+48); // zero is ascii 48
ivalue=ivalue/10;
i++;
}
chbuf[i]=(unsigned char) (ivalue+48); // most significant digit
while(i>=0)
{
*outbuf=chbuf[i];
i--;
outbuf++;
}
*outbuf=0;
}
unsigned char ulong_to_ascii(unsigned long ulvalue,unsigned char *string)
{
unsigned char chbuf[10],*outbuf,j;
signed char i;
outbuf=string;
i=0;
while(ulvalue>9 && i<9)
{
// zero is ascii 48:
chbuf[i]=(unsigned char) ((ulvalue-((ulvalue/10)*10))+48);
ulvalue=ulvalue/10;
i++;
}
chbuf[i]=(unsigned char) (ulvalue+48); // most significant digit
j = i+1;
while(i>=0)
{
*outbuf=chbuf[i];
i--;
outbuf++;
}
*outbuf=0;
return j;
}
void long_to_ascii(signed long lvalue,unsigned char *string)
{
unsigned char chbuf[10],*outbuf;
signed char i,j;
outbuf=string;
if(lvalue<0) {*outbuf='-'; //去除符号位
lvalue=~lvalue+1;
}
else {*outbuf=0x80;
}
outbuf++;
i=0;
while(lvalue>9 && i<9)
{
chbuf[i]=(unsigned char) ((lvalue-((lvalue/10)*10))+48); // zero is ascii 48
lvalue=lvalue/10;
i++;
}
chbuf[i]=(unsigned char) (lvalue+48); // most significant digit
while(i>=0)
{
*outbuf=chbuf[i];
i--;
outbuf++;
}
*outbuf=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -