小数基转换算法c语言,C语言数值转换成字符算法

1、ADC数字值16进制转换成字符,变为电压值,ADC基准3V,12位ADC:

int string_shift(char* outdata,int inport,int inportWidth,int typeLen)

{

float i,buffer;

int j;

i =(float)inport;

buffer = (i/4095)*3000;

j =(int)buffer;

outdata[7] =j/1000+'0';       // 取小数点前一位

outdata[9] =(j%1000)/100+'0'; //取小数点后一位

outdata[10] =(j%100)/10+'0';  // 取小数点后二位

outdata[11] =j%10+'0';        // 取小数点后三位

return 0;

}

2、ADC数字值转换成字符,十进制:

int string_shift(char* outdata,int inport,int inportWidth,int typeLen)

{

int i;

i =inport;

outdata[7] =i/1000+'0';       // 取千位

outdata[8] =(i%1000)/100+'0'; //取百位

outdata[9] =(i%100)/10+'0';  // 取十位

outdata[10] =i%10+'0';        // 取个位

return 0;

}

3、将16进制数值转换成字符,按位转换

int string_shift_hex(char* outdata,unsigned int inport)

{

unsigned int j;

j=25;

if(((inport>>12) & 0x000f)>9)

{

outdata[j++] =(((inport>>12) & 0x000f)+55);

}

else

{

outdata[j++] =((inport>>12) & 0x000f)+'0';

}             //取高4位

if(((inport>>8) & 0x000f)>9)

{

outdata[j++] =(((inport>>8) & 0x000f)+55);

}

else

{

outdata[j++] =((inport>>8) & 0x000f)+'0';

}             //取中高4位

if(((inport>>4) & 0x000f)>9)

{

outdata[j++] =(((inport>>4) & 0x000f)+55);

}

else

{

outdata[j++] =((inport>>4) & 0x000f)+'0';

}             //取中低4位

if(((inport>>0) & 0x000f)>9)

{

outdata[j++] =(((inport>>0) & 0x000f)+55);

}

else

{

outdata[j++] =((inport>>0) & 0x000f)+'0';

}             //取低4位

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值