标题:
单片机C语言变量怎么一位一位的取出?
[打印本页]
作者:
yinnan128
时间:
2021-3-18 15:38
标题:
单片机C语言变量怎么一位一位的取出?
用下面的算法,LCD1602显示一个变量,按键按一次变量++,数值在99内显示正常,超过就显示乱码。比如按了123次,取十位的时候就是123/10=12.3这个运算就不对了,不知道应该怎么写公式
unsigned long MOS_JS;
unsigned char MOS_jishu[]={}; MOS_JS=123456;
MOS_jishu[0]=MOS_JS/100000+0x30;//取十万位
MOS_jishu[1]=MOS_JS/10000+0x30;//取万位
MOS_jishu[2]=MOS_JS/1000+0x30;//取千位
MOS_jishu[3]=MOS_JS/100+0x30;//取百位
MOS_jishu[4]=MOS_JS/10+0x30;//取十位
MOS_jishu[5]=MOS_JS%10+0x30;//取个位
作者:
天ノ忆
时间:
2021-3-18 17:45
123/10=12.3????明明等于12好不好!
作者:
天ノ忆
时间:
2021-3-18 17:46
你应该把百位取余之后的数进行除10计算
作者:
man1234567
时间:
2021-3-18 18:09
我是骑马来的,听人说骑马比走路要快,请问怎样可以找到马
作者:
张天师
时间:
2021-3-18 18:51
例如这样:
MOS_jishu[3]=(MOS_JS/100)%10+0x30;//取百位
MOS_jishu[4]=(MOS_JS/10)%10+0x30;//取十位
MOS_jishu[5]=MOS_JS%10+0x30;//取个位
作者:
wulin
时间:
2021-3-18 20:25
MOS_jishu[0]=MOS_JS/100000%10+0x30;//取十万位
MOS_jishu[1]=MOS_JS/10000%10+0x30;//取万位
MOS_jishu[2]=MOS_JS/1000%10+0x30;//取千位
MOS_jishu[3]=MOS_JS/100%10+0x30;//取百位
MOS_jishu[4]=MOS_JS/10%10+0x30;//取十位
MOS_jishu[5]=MOS_JS%10+0x30;//取个位
//以上方法耗时2.23ms,下面方法耗时1.15ms
unsigned char i;
long j;
j=MOS_JS;//不改变MOS_JS原始数据
for(i=6;i>0;i--)
{
MOS_jishu[i-1]=j%10+'0';//由低位到高位保存
j/=10;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1