微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 有关c语言的一个小问题,请大家看看(结贴)

有关c语言的一个小问题,请大家看看(结贴)

时间:10-02 整理:3721RD 点击:

一个很简单的if语句,但是就是不知道什么地方错了,总也不对,请坛友们看看
想要达到的目的是:将一个已知的16进制数转换成10进制,然后判断这个10进制数的十位是几,因为已知的16进制数大小的关系,转成10进制的十位只有0,1,2,3这几种个能,当十位是0时,led0亮;是1时,led1亮;是2时,led2亮;是3时,led亮。
判断语句是这么写的 if(十位==0)led0亮;
                             else if(十位==1)led1亮;
                                       ……
但奇怪的是不论我的16进制数给的是多少,都是led0亮。
我以为是不是我的16转10进制代码有问题,导致后面的结果不对,但是通过串口我看到根据给的16进制数不同,转换结束后我可以得到正确的十位。  为什么在串口看到的正确的数,但是紧接着判断if语句时就总也不对呢?我很纳闷啊,请大家指教啊
问题搞定了。昨天迷迷糊糊的,今天早上又仔细看了遍发现问题了,我把转好的十进制进行ASCII码调整了 +0x30,结果就得不到0,1,2,3了。还是细心重要啊

这是什么实验呀?

十位你是怎么取出来的  
比如  要取的数%100/10

进制转换应该是没有问题,我用串口看过了,十位是 %100/10求出来的

那就换一种,用switch,case语句试试看

上相关代码好些!

上代码看吧,这么说怎么看?

看看

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top