找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1644|回复: 5
打印 上一主题 下一主题
收起左侧

单片机C语言变量怎么一位一位的取出?

[复制链接]
跳转到指定楼层
楼主
ID:608872 发表于 2021-3-18 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用下面的算法,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;//取个位




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:139866 发表于 2021-3-18 17:45 | 只看该作者
123/10=12.3????明明等于12好不好!
回复

使用道具 举报

板凳
ID:139866 发表于 2021-3-18 17:46 | 只看该作者
你应该把百位取余之后的数进行除10计算
回复

使用道具 举报

地板
ID:584814 发表于 2021-3-18 18:09 | 只看该作者
我是骑马来的,听人说骑马比走路要快,请问怎样可以找到马
回复

使用道具 举报

5#
ID:814525 发表于 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;//取个位
回复

使用道具 举报

6#
ID:213173 发表于 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;
                }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表