有关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了。还是细心重要啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
伊络
1楼-- · 2019-07-16 07:59
这是什么实验呀?
icewu521
2楼-- · 2019-07-16 10:09
十位你是怎么取出来的  
比如  要取的数%100/10
dianziyn
3楼-- · 2019-07-16 15:13
icewu521 发表于 2013-1-17 20:09
十位你是怎么取出来的  
比如  要取的数%100/10

进制转换应该是没有问题,我用串口看过了,十位是 %100/10求出来的
icewu521
4楼-- · 2019-07-16 17:36
 精彩回答 2  元偷偷看……
yintianye
5楼-- · 2019-07-16 21:50
上相关代码好些!
jiangxiaowenzsz
6楼-- · 2019-07-16 22:50

一周热门 更多>