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

2019-07-16 02:42发布

本帖最后由 dianziyn 于 2013-1-18 12:11 编辑

一个很简单的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了。还是细心重要啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。