有关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语句试试看
上相关代码好些!
上代码看吧,这么说怎么看?
看看