单片机C语言编程时,不同进制数进行大小比较,怎么写?请举例. 这样写是不是正确: a(十六进制数)>13000

如题所述

单片机只能认识二进制数字,所谓的不同进制数只是用户编程时给定变量数值时的形式不同而已,所以如果你的变量是数值类型的,直接比较就可以。但如果数值的赋值过程还没有完成,就需要单片机对表示不同进制数字的字符串,进行转换为数值后,再比较了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-22
直接比较就行了,不管你16进制,还是十进制,或2进制。它在寄存器里都是2进制来判断大小的追问

位操作也是如此?

追答

是的。。比如你0X03<<2的操作 在单片机的寄存器里就是0000 0011 <<2的操作,变成0000 1100,你得到的结果就是0X09

第2个回答  2013-01-22
0xA >13000追问

a=0xa
b=13000
if(a>b) tangram_guid_1358839582906?
{
xxxxxx
}

追答

tangram_guid_1358839582906?

这个是注释吗

追问

不是,是问号,乱码了。。

追答

C 语言不需要这个问号,你的代码不能正常编译吗?把错误代码贴上来。

第3个回答  2013-01-22
直接比较就行了追问

那单片机C语言编程时,定义了uint a 位操作能否这样: a=a<<8 ?

追答

没问题